>>> kismet: Building testing/kismet 0.202307.1-r5 (using abuild 3.15.0_rc3-r0) started Sun, 13 Apr 2025 16:15:57 +0000
>>> kismet: Validating /home/buildozer/aports/testing/kismet/APKBUILD...
>>> kismet: Analyzing dependencies...
>>> kismet: Installing for build: build-base abseil-cpp-dev libnl3-dev libpcap-dev linux-headers openssl-dev pcre2-dev protobuf-c-dev protobuf-dev sqlite-dev zlib-dev
(1/133) Installing linux-headers (6.12.6-r0)
(2/133) Installing abseil-cpp-atomic-hook-test-helper (20240722.1-r1)
(3/133) Installing abseil-cpp-bad-any-cast-impl (20240722.1-r1)
(4/133) Installing abseil-cpp-bad-optional-access (20240722.1-r1)
(5/133) Installing abseil-cpp-bad-variant-access (20240722.1-r1)
(6/133) Installing abseil-cpp-spinlock-wait (20240722.1-r1)
(7/133) Installing abseil-cpp-base (20240722.1-r1)
(8/133) Installing abseil-cpp-city (20240722.1-r1)
(9/133) Installing abseil-cpp-civil-time (20240722.1-r1)
(10/133) Installing abseil-cpp-raw-logging-internal (20240722.1-r1)
(11/133) Installing abseil-cpp-crc-internal (20240722.1-r1)
(12/133) Installing abseil-cpp-crc32c (20240722.1-r1)
(13/133) Installing abseil-cpp-crc-cord-state (20240722.1-r1)
(14/133) Installing abseil-cpp-strings-internal (20240722.1-r1)
(15/133) Installing abseil-cpp-strings (20240722.1-r1)
(16/133) Installing abseil-cpp-cord-internal (20240722.1-r1)
(17/133) Installing abseil-cpp-exponential-biased (20240722.1-r1)
(18/133) Installing abseil-cpp-cordz-functions (20240722.1-r1)
(19/133) Installing abseil-cpp-time-zone (20240722.1-r1)
(20/133) Installing abseil-cpp-time (20240722.1-r1)
(21/133) Installing abseil-cpp-kernel-timeout-internal (20240722.1-r1)
(22/133) Installing abseil-cpp-malloc-internal (20240722.1-r1)
(23/133) Installing abseil-cpp-debugging-internal (20240722.1-r1)
(24/133) Installing abseil-cpp-stacktrace (20240722.1-r1)
(25/133) Installing abseil-cpp-synchronization (20240722.1-r1)
(26/133) Installing abseil-cpp-cordz-handle (20240722.1-r1)
(27/133) Installing abseil-cpp-cordz-info (20240722.1-r1)
(28/133) Installing abseil-cpp-cord (20240722.1-r1)
(29/133) Installing abseil-cpp-cordz-sample-token (20240722.1-r1)
(30/133) Installing abseil-cpp-crc-cpu-detect (20240722.1-r1)
(31/133) Installing abseil-cpp-strerror (20240722.1-r1)
(32/133) Installing abseil-cpp-status (20240722.1-r1)
(33/133) Installing gtest (1.16.0-r0)
(34/133) Installing abseil-cpp (20240722.1-r1)
(35/133) Installing abseil-cpp-demangle-internal (20240722.1-r1)
(36/133) Installing abseil-cpp-symbolize (20240722.1-r1)
(37/133) Installing abseil-cpp-examine-stack (20240722.1-r1)
(38/133) Installing abseil-cpp-low-level-hash (20240722.1-r1)
(39/133) Installing abseil-cpp-hash (20240722.1-r1)
(40/133) Installing abseil-cpp-log-globals (20240722.1-r1)
(41/133) Installing abseil-cpp-log-internal-globals (20240722.1-r1)
(42/133) Installing abseil-cpp-int128 (20240722.1-r1)
(43/133) Installing abseil-cpp-str-format-internal (20240722.1-r1)
(44/133) Installing abseil-cpp-log-internal-format (20240722.1-r1)
(45/133) Installing abseil-cpp-log-sink (20240722.1-r1)
(46/133) Installing abseil-cpp-log-internal-log-sink-set (20240722.1-r1)
(47/133) Installing abseil-cpp-log-internal-proto (20240722.1-r1)
(48/133) Installing abseil-cpp-log-internal-message (20240722.1-r1)
(49/133) Installing abseil-cpp-die-if-null (20240722.1-r1)
(50/133) Installing abseil-cpp-exception-safety-testing (20240722.1-r1)
(51/133) Installing abseil-cpp-failure-signal-handler (20240722.1-r1)
(52/133) Installing abseil-cpp-flags-commandlineflag-internal (20240722.1-r1)
(53/133) Installing abseil-cpp-flags-commandlineflag (20240722.1-r1)
(54/133) Installing abseil-cpp-flags-program-name (20240722.1-r1)
(55/133) Installing abseil-cpp-flags-config (20240722.1-r1)
(56/133) Installing abseil-cpp-flags-internal (20240722.1-r1)
(57/133) Installing abseil-cpp-flags-marshalling (20240722.1-r1)
(58/133) Installing abseil-cpp-flags-private-handle-accessor (20240722.1-r1)
(59/133) Installing abseil-cpp-raw-hash-set (20240722.1-r1)
(60/133) Installing abseil-cpp-flags-reflection (20240722.1-r1)
(61/133) Installing abseil-cpp-flags-usage (20240722.1-r1)
(62/133) Installing abseil-cpp-flags-usage-internal (20240722.1-r1)
(63/133) Installing abseil-cpp-flags-parse (20240722.1-r1)
(64/133) Installing abseil-cpp-graphcycles-internal (20240722.1-r1)
(65/133) Installing abseil-cpp-hash-generator-testing (20240722.1-r1)
(66/133) Installing abseil-cpp-hashtablez-sampler (20240722.1-r1)
(67/133) Installing abseil-cpp-leak-check (20240722.1-r1)
(68/133) Installing abseil-cpp-log-entry (20240722.1-r1)
(69/133) Installing abseil-cpp-log-internal-fnmatch (20240722.1-r1)
(70/133) Installing abseil-cpp-vlog-config-internal (20240722.1-r1)
(71/133) Installing abseil-cpp-log-flags (20240722.1-r1)
(72/133) Installing abseil-cpp-log-initialize (20240722.1-r1)
(73/133) Installing abseil-cpp-log-internal-nullguard (20240722.1-r1)
(74/133) Installing abseil-cpp-log-internal-check-op (20240722.1-r1)
(75/133) Installing abseil-cpp-log-internal-conditions (20240722.1-r1)
(76/133) Installing abseil-cpp-log-severity (20240722.1-r1)
(77/133) Installing abseil-cpp-log-internal-test-actions (20240722.1-r1)
(78/133) Installing abseil-cpp-log-internal-test-helpers (20240722.1-r1)
(79/133) Installing abseil-cpp-log-internal-test-matchers (20240722.1-r1)
(80/133) Installing abseil-cpp-per-thread-sem-test-common (20240722.1-r1)
(81/133) Installing abseil-cpp-periodic-sampler (20240722.1-r1)
(82/133) Installing abseil-cpp-pow10-helper (20240722.1-r1)
(83/133) Installing abseil-cpp-random-distributions (20240722.1-r1)
(84/133) Installing abseil-cpp-random-internal-distribution-test-util (20240722.1-r1)
(85/133) Installing abseil-cpp-random-internal-platform (20240722.1-r1)
(86/133) Installing abseil-cpp-random-internal-randen-hwaes (20240722.1-r1)
(87/133) Installing abseil-cpp-random-internal-randen-hwaes-impl (20240722.1-r1)
(88/133) Installing abseil-cpp-random-internal-randen-slow (20240722.1-r1)
(89/133) Installing abseil-cpp-random-internal-randen (20240722.1-r1)
(90/133) Installing abseil-cpp-random-internal-seed-material (20240722.1-r1)
(91/133) Installing abseil-cpp-random-seed-gen-exception (20240722.1-r1)
(92/133) Installing abseil-cpp-random-internal-pool-urbg (20240722.1-r1)
(93/133) Installing abseil-cpp-random-seed-sequences (20240722.1-r1)
(94/133) Installing gmock (1.16.0-r0)
(95/133) Installing abseil-cpp-scoped-mock-log (20240722.1-r1)
(96/133) Installing abseil-cpp-scoped-set-env (20240722.1-r1)
(97/133) Installing abseil-cpp-spinlock-test-common (20240722.1-r1)
(98/133) Installing abseil-cpp-stack-consumption (20240722.1-r1)
(99/133) Installing abseil-cpp-statusor (20240722.1-r1)
(100/133) Installing abseil-cpp-string-view (20240722.1-r1)
(101/133) Installing abseil-cpp-test-instance-tracker (20240722.1-r1)
(102/133) Installing abseil-cpp-throw-delegate (20240722.1-r1)
(103/133) Installing abseil-cpp-time-internal-test-util (20240722.1-r1)
(104/133) Installing abseil-cpp-dev (20240722.1-r1)
(105/133) Installing libnl3 (3.11.0-r0)
(106/133) Installing libnl3-cli (3.11.0-r0)
(107/133) Installing libnl3-dev (3.11.0-r0)
(108/133) Installing libpcap (1.10.5-r0)
(109/133) Installing libpcap-dev (1.10.5-r0)
(110/133) Installing openssl-dev (3.5.0-r0)
(111/133) Installing bsd-compat-headers (0.7.2-r6)
(112/133) Installing libformw (6.5_p20250216-r0)
(113/133) Installing libmenuw (6.5_p20250216-r0)
(114/133) Installing libpanelw (6.5_p20250216-r0)
(115/133) Installing libncurses++ (6.5_p20250216-r0)
(116/133) Installing ncurses-dev (6.5_p20250216-r0)
(117/133) Installing libedit-dev (20250104.3.1-r0)
(118/133) Installing zlib-dev (1.3.1-r2)
(119/133) Installing libpcre2-16 (10.43-r1)
(120/133) Installing libpcre2-32 (10.43-r1)
(121/133) Installing pcre2-dev (10.43-r1)
(122/133) Installing libprotobuf (25.6-r0)
(123/133) Installing libprotoc (25.6-r0)
(124/133) Installing protobuf-c-compiler (1.5.1-r1)
(125/133) Installing protobuf-c (1.5.1-r1)
(126/133) Installing protobuf-c-dev (1.5.1-r1)
(127/133) Installing protoc (25.6-r0)
(128/133) Installing libprotobuf-lite (25.6-r0)
(129/133) Installing protobuf-dev (25.6-r0)
(130/133) Installing sqlite (3.49.1-r0)
(131/133) Installing sqlite-libs (3.49.1-r0)
(132/133) Installing sqlite-dev (3.49.1-r0)
(133/133) Installing .makedepends-kismet (20250413.161558)
Executing busybox-1.37.0-r16.trigger
OK: 439 MiB in 241 packages
>>> kismet: Cleaning up srcdir
>>> kismet: Cleaning up pkgdir
>>> kismet: Cleaning up tmpdir
>>> kismet: Fetching https://distfiles.alpinelinux.org/distfiles/edge/kismet-0.202307.1.tar.xz
Connecting to distfiles.alpinelinux.org (172.105.82.32:443)
saving to '/var/cache/distfiles/edge/kismet-0.202307.1.tar.xz.part'
kismet-0.202307.1.ta 100% |********************************| 10.6M  0:00:00 ETA
'/var/cache/distfiles/edge/kismet-0.202307.1.tar.xz.part' saved
>>> kismet: Fetching https://distfiles.alpinelinux.org/distfiles/edge/kismet-0.202307.1.tar.xz
>>> kismet: Checking sha512sums...
kismet-0.202307.1.tar.xz: OK
>>> kismet: Unpacking /var/cache/distfiles/edge/kismet-0.202307.1.tar.xz...
>>> kismet: Updating ./config.sub
checking build system type... aarch64-alpine-linux-musl
checking host system type... aarch64-alpine-linux-musl
checking for aarch64-alpine-linux-musl-gcc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether cc accepts -g... yes
checking for cc option to enable C11 features... none needed
checking whether the compiler supports GNU C++... yes
checking whether c++ accepts -g... yes
checking for c++ option to enable C++11 features... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking whether make sets $(MAKE)... yes
checking how to run the C preprocessor... cc -E
checking for platform-specific compiler flags... none needed
checking gcc version... 14.2.0
checking whether c++ supports C++17 features with -std=gnu++17... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking whether byte ordering is bigendian... no
configure: WARNING: Disabling Python and Python-related tools
checking for dwarf_begin in -ldw... no
checking for bfd_alloc in -lbfd... no
checking for unwind.h... yes
checking for execinfo.h... no
checking for stdint.h... (cached) yes
checking for strerror_r() return... int
checking for accept() addrlen type... socklen_t
checking for pipe2... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for dlopen in -ldl... yes
checking for deflate in -lz... yes
checking for libatomic... yes
checking for pthread_mutex_timedlock... yes
checking for libm math function in std libs... yes
checking for main in -lstdc++... yes
checking for group 'root'... yes
checking for setproctitle... no
checking for libutil.h... no
checking for setproctitle in -lutil... no
checking for sys/pstat.h... no
checking how to run the C++ preprocessor... c++ -std=gnu++17 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking whether __progname and __progname_full are available... yes
checking which argv replacement method to use... writeable
checking for linux/wireless.h... yes
checking that linux/wireless.h is what we expect... yes
checking can we use iw_freq.flags... yes
checking for cap_init in -lcap... no
checking for sys/prctl.h... yes
checking for sys/capability.h... no
checking Checking C++17 parallel functions... ok
checking for sqlite3_libversion in -lsqlite3... yes
checking for sqlite3.h... yes
checking for aarch64-alpine-linux-musl-pkg-config... no
checking for pkg-config... pkg-config
checking whether compiling and linking against OpenSSL works... yes
checking for aarch64-alpine-linux-musl-pkg-config... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for libpcap... yes
checking for protobuf... yes
checking for protoc... yes
checking for libprotobuf-c... yes
checking for protoc-c... yes
Using local radiotap headers
checking for libnm... no
configure: WARNING: Libnm missing device_set_managed function may be a very old version
checking for libnl-3.0... yes
checking for libnl-genl-3.0... yes
checking for libnl-2.0... no
checking for libnl-1... no
checking For mac80211 support in netlink library... yes
configure: WARNING: missing libusb, ubertooth-one support will not be built
configure: WARNING: missing one or more required libraries for ubertooth-one
checking for sensors/sensors.h... no
configure: WARNING: "libsensors lm-sensors missing"
configure: creating ./config.status
config.status: creating Makefile
config.status: creating Makefile.inc
config.status: WARNING:  'Makefile.inc.in' seems to ignore the --datarootdir setting
config.status: creating packaging/kismet.pc
config.status: creating packaging/systemd/kismet.service
config.status: creating packaging/systemd/debug/kismet-debug.service
config.status: creating capture_linux_bluetooth/Makefile
config.status: creating capture_linux_wifi/Makefile
config.status: creating capture_osx_corewlan_wifi/Makefile
config.status: creating capture_sdr_rtl433/Makefile
config.status: creating capture_sdr_rtlamr/Makefile
config.status: creating capture_sdr_rtladsb/Makefile
config.status: creating capture_bt_geiger/Makefile
config.status: creating capture_freaklabs_zigbee/Makefile
config.status: creating capture_nrf_mousejack/Makefile
config.status: creating capture_ti_cc_2540/Makefile
config.status: creating capture_ti_cc_2531/Makefile
config.status: creating capture_ubertooth_one/Makefile
config.status: creating capture_nrf_51822/Makefile
config.status: creating capture_nxp_kw41z/Makefile
config.status: creating capture_rz_killerbee/Makefile
config.status: creating capture_bladerf_wiphy/Makefile
config.status: creating capture_proxy_adsb/Makefile
config.status: creating capture_nrf_52840/Makefile
config.status: creating capture_hak5_wifi_coconut/Makefile
config.status: creating config.h

Configuration complete: 
         Compiling for: linux-musl (aarch64)
           C++ Library: stdc++
      Protobuf Library: protobuf
   Installing as group: root
       Installing into: /usr
          Setuid group: kismet
        Prelude  SIEM : no
            PCRE regex: libpcre2
 Websocket datasources: no (not building remote capture with websockets)
LibCapability (enhanced
   privilege dropping): no
  Linux Wi-Fi capture : yes
         Linux Netlink: yes (mac80211 VAP creation) - libnl-3.0 libnl-genl-3.0
  Linux NetworkManager: no (will not be able to control NetworkManager, libnm missing required functions, may be very out of date)
   Linux HCI Bluetooth: yes
   OSX/Darwin capture : n/a (only OSX/Darwin)
         nRF MouseJack: no (libusb-1.0 not available)
       TI CC 2540 BTLE: no (libusb-1.0 not available)
     TI CC 2531 Zigbee: no (libusb-1.0 not available)
         Ubertooth One: no (libubertooth, libbtbb, or libusb-1.0 not available)
         NRF51822 BTLE: yes
       NRF52840 Zigbee: yes
  NXP KW41Z BLE/Zigbee: yes
          RZ KILLERBEE: no (libusb-1.0 not available)
        Python Modules: no (will not build Python based sources)
    Python interpreter: python3
       RTL-SDR RTL_433: no (python modules are disabled)
        RTL-SDR RTLAMR: no (python modules are disabled)
       RTL-SDR RTLADSB: no (python modules are disabled)
    BTLE Geiger Sensor: no (not explicitly enabled)
      Freaklabs Zigbee: no (python modules are disabled)
            ADSB Proxy: no (python modules are disabled)
         bladeRF-wiphy: no (bladeRF support not enabled)
     Hak5 WiFi Coconut: no (Hak5 WiFi Coconut support not enabled)
 lm-sensors monitoring: no (will not be able to monitor system temperature, etc)
        Built-in Debug: no - Backtraces will not be available on crashes

*** WARNING ***
libnm (the NetworkManager control library) was not found (or it was disabled). 
Kismet uses libnm to prevent NetworkManager from reconfiguring monitor mode 
interfaces while Kismet is running; without this library you will need to manually 
disable NetworkManager or manually tell it to ignore specific interaces.
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/kismet.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/http.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/datasource.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/linuxbluetooth.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/eventbus.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/kismet.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/http.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/datasource.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/linuxbluetooth.proto
protoc --cpp_out=./protobuf_cpp/ -I protobuf_definitions/ protobuf_definitions/eventbus.proto
protoc-c --c_out=./protobuf_c/ -I protobuf_definitions/ protobuf_definitions/kismet.proto
protoc-c --c_out=./protobuf_c/ -I protobuf_definitions/ protobuf_definitions/datasource.proto
protoc-c --c_out=./protobuf_c/ -I protobuf_definitions/ protobuf_definitions/linuxbluetooth.proto
protoc-c --c_out=./protobuf_c/ -I protobuf_definitions/ protobuf_definitions/eventbus.proto
protoc-c --c_out=./protobuf_c/ -I protobuf_definitions/ protobuf_definitions/kismet.proto
protoc-c --c_out=./protobuf_c/ -I protobuf_definitions/ protobuf_definitions/datasource.proto
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1744560966.283213   12809 main.cc:44] `protoc-c` is deprecated. Please use `protoc` instead!
W0000 00:00:1744560966.283216   12811 main.cc:44] `protoc-c` is deprecated. Please use `protoc` instead!
W0000 00:00:1744560966.283216   12806 main.cc:44] `protoc-c` is deprecated. Please use `protoc` instead!
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1744560966.283262   12813 main.cc:44] `protoc-c` is deprecated. Please use `protoc` instead!
W0000 00:00:1744560966.283263   12812 main.cc:44] `protoc-c` is deprecated. Please use `protoc` instead!
protoc-c --c_out=./protobuf_c/ -I protobuf_definitions/ protobuf_definitions/linuxbluetooth.proto
protoc-c --c_out=./protobuf_c/ -I protobuf_definitions/ protobuf_definitions/eventbus.proto
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1744560966.285406   12817 main.cc:44] `protoc-c` is deprecated. Please use `protoc` instead!
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1744560966.289463   12818 main.cc:44] `protoc-c` is deprecated. Please use `protoc` instead!
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1744560966.289561   12819 main.cc:44] `protoc-c` is deprecated. Please use `protoc` instead!
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT version.c.o version.c -MF version.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT protobuf_c/kismet.pb-c.c.o protobuf_c/kismet.pb-c.c -MF protobuf_c/kismet.pb-c.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT protobuf_c/linuxbluetooth.pb-c.c.o protobuf_c/linuxbluetooth.pb-c.c -MF protobuf_c/linuxbluetooth.pb-c.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT protobuf_c/eventbus.pb-c.c.o protobuf_c/eventbus.pb-c.c -MF protobuf_c/eventbus.pb-c.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT simple_ringbuf_c.c.o simple_ringbuf_c.c -MF simple_ringbuf_c.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT capture_framework.c.o capture_framework.c -MF capture_framework.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT capture_kismetdb.c.o capture_kismetdb.c -MF capture_kismetdb.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT capture_pcapfile.c.o capture_pcapfile.c -MF capture_pcapfile.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT log_tools/kismetdb_strip_packet_content.c.o log_tools/kismetdb_strip_packet_content.c -MF log_tools/kismetdb_strip_packet_content.c.d
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT protobuf_c/datasource.pb-c.c.o protobuf_c/datasource.pb-c.c -MF protobuf_c/datasource.pb-c.c.d
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c version.c -o version.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c protobuf_c/eventbus.pb-c.c -o protobuf_c/eventbus.pb-c.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c protobuf_c/kismet.pb-c.c -o protobuf_c/kismet.pb-c.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c protobuf_c/linuxbluetooth.pb-c.c -o protobuf_c/linuxbluetooth.pb-c.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c simple_ringbuf_c.c -o simple_ringbuf_c.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c protobuf_c/datasource.pb-c.c -o protobuf_c/datasource.pb-c.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c log_tools/kismetdb_strip_packet_content.c -o log_tools/kismetdb_strip_packet_content.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c capture_pcapfile.c -o capture_pcapfile.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c capture_framework.c -o capture_framework.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c capture_kismetdb.c -o capture_kismetdb.c.o
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT protobuf_cpp/kismet.pb.cc.o protobuf_cpp/kismet.pb.cc -MF protobuf_cpp/kismet.pb.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT protobuf_cpp/http.pb.cc.o protobuf_cpp/http.pb.cc -MF protobuf_cpp/http.pb.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT protobuf_cpp/datasource.pb.cc.o protobuf_cpp/datasource.pb.cc -MF protobuf_cpp/datasource.pb.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT protobuf_cpp/linuxbluetooth.pb.cc.o protobuf_cpp/linuxbluetooth.pb.cc -MF protobuf_cpp/linuxbluetooth.pb.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT protobuf_cpp/eventbus.pb.cc.o protobuf_cpp/eventbus.pb.cc -MF protobuf_cpp/eventbus.pb.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT util.cc.o util.cc -MF util.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT crc32.cc.o crc32.cc -MF crc32.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT macaddr.cc.o macaddr.cc -MF macaddr.cc.d
capture_kismetdb.c: In function 'capture_thread':
capture_kismetdb.c:494:12: warning: variable 'packet_frequency' set but not used [-Wunused-but-set-variable]
  494 |     double packet_frequency;
      |            ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT uuid.cc.o uuid.cc -MF uuid.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT xxhash.cc.o xxhash.cc -MF xxhash.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT boost_like_hash.cc.o boost_like_hash.cc -MF boost_like_hash.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT sqlite3_cpp11.cc.o sqlite3_cpp11.cc -MF sqlite3_cpp11.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT globalregistry.cc.o globalregistry.cc -MF globalregistry.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT eventbus.cc.o eventbus.cc -MF eventbus.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT packet.cc.o packet.cc -MF packet.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT configfile.cc.o configfile.cc -MF configfile.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT battery.cc.o battery.cc -MF battery.cc.d
At top level:
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT ipctracker_v2.cc.o ipctracker_v2.cc -MF ipctracker_v2.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_external.cc.o kis_external.cc -MF kis_external.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dlttracker.cc.o dlttracker.cc -MF dlttracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT antennatracker.cc.o antennatracker.cc -MF antennatracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasourcetracker.cc.o datasourcetracker.cc -MF datasourcetracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_datasource.cc.o kis_datasource.cc -MF kis_datasource.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_linux_bluetooth.cc.o datasource_linux_bluetooth.cc -MF datasource_linux_bluetooth.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_rtl433.cc.o datasource_rtl433.cc -MF datasource_rtl433.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_rtlamr.cc.o datasource_rtlamr.cc -MF datasource_rtlamr.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_rtladsb.cc.o datasource_rtladsb.cc -MF datasource_rtladsb.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_ti_cc_2540.cc.o datasource_ti_cc_2540.cc -MF datasource_ti_cc_2540.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_ti_cc_2531.cc.o datasource_ti_cc_2531.cc -MF datasource_ti_cc_2531.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_ubertooth_one.cc.o datasource_ubertooth_one.cc -MF datasource_ubertooth_one.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_nrf_51822.cc.o datasource_nrf_51822.cc -MF datasource_nrf_51822.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_nxp_kw41z.cc.o datasource_nxp_kw41z.cc -MF datasource_nxp_kw41z.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_nrf_52840.cc.o datasource_nrf_52840.cc -MF datasource_nrf_52840.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_rz_killerbee.cc.o datasource_rz_killerbee.cc -MF datasource_rz_killerbee.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_scan.cc.o datasource_scan.cc -MF datasource_scan.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT datasource_bt_geiger.cc.o datasource_bt_geiger.cc -MF datasource_bt_geiger.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_net_beast_httpd.cc.o kis_net_beast_httpd.cc -MF kis_net_beast_httpd.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_httpd_registry.cc.o kis_httpd_registry.cc -MF kis_httpd_registry.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT system_monitor.cc.o system_monitor.cc -MF system_monitor.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT base64.cc.o base64.cc -MF base64.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT gpstracker.cc.o gpstracker.cc -MF gpstracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_gps.cc.o kis_gps.cc -MF kis_gps.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT gpsnmea_v2.cc.o gpsnmea_v2.cc -MF gpsnmea_v2.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT gpsserial_v3.cc.o gpsserial_v3.cc -MF gpsserial_v3.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT gpstcp_v2.cc.o gpstcp_v2.cc -MF gpstcp_v2.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT gpsgpsd_v3.cc.o gpsgpsd_v3.cc -MF gpsgpsd_v3.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT gpsfake.cc.o gpsfake.cc -MF gpsfake.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT gpsweb.cc.o gpsweb.cc -MF gpsweb.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT gpsmeta.cc.o gpsmeta.cc -MF gpsmeta.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT packetchain.cc.o packetchain.cc -MF packetchain.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT packet_filter.cc.o packet_filter.cc -MF packet_filter.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT class_filter.cc.o class_filter.cc -MF class_filter.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT trackedelement.cc.o trackedelement.cc -MF trackedelement.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT trackedelement_workers.cc.o trackedelement_workers.cc -MF trackedelement_workers.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT trackedcomponent.cc.o trackedcomponent.cc -MF trackedcomponent.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT entrytracker.cc.o entrytracker.cc -MF entrytracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT trackedlocation.cc.o trackedlocation.cc -MF trackedlocation.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT devicetracker_component.cc.o devicetracker_component.cc -MF devicetracker_component.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT devicetracker_view.cc.o devicetracker_view.cc -MF devicetracker_view.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT devicetracker_view_workers.cc.o devicetracker_view_workers.cc -MF devicetracker_view_workers.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_server_announce.cc.o kis_server_announce.cc -MF kis_server_announce.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT json_adapter.cc.o json_adapter.cc -MF json_adapter.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT plugintracker.cc.o plugintracker.cc -MF plugintracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT alertracker.cc.o alertracker.cc -MF alertracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT timetracker.cc.o timetracker.cc -MF timetracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT channeltracker2.cc.o channeltracker2.cc -MF channeltracker2.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT devicetracker.cc.o devicetracker.cc -MF devicetracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT devicetracker_httpd.cc.o devicetracker_httpd.cc -MF devicetracker_httpd.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_dlt.cc.o kis_dlt.cc -MF kis_dlt.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_dlt_ppi.cc.o kis_dlt_ppi.cc -MF kis_dlt_ppi.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_dlt_radiotap.cc.o kis_dlt_radiotap.cc -MF kis_dlt_radiotap.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_dlt_btle_radio.cc.o kis_dlt_btle_radio.cc -MF kis_dlt_btle_radio.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kaitaistream.cc.o kaitaistream.cc -MF kaitaistream.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie.cc.o dot11_parsers/dot11_ie.cc -MF dot11_parsers/dot11_ie.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_7_country.cc.o dot11_parsers/dot11_ie_7_country.cc -MF dot11_parsers/dot11_ie_7_country.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_11_qbss.cc.o dot11_parsers/dot11_ie_11_qbss.cc -MF dot11_parsers/dot11_ie_11_qbss.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_33_power.cc.o dot11_parsers/dot11_ie_33_power.cc -MF dot11_parsers/dot11_ie_33_power.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_36_supported_channels.cc.o dot11_parsers/dot11_ie_36_supported_channels.cc -MF dot11_parsers/dot11_ie_36_supported_channels.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_45_ht_cap.cc.o dot11_parsers/dot11_ie_45_ht_cap.cc -MF dot11_parsers/dot11_ie_45_ht_cap.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_48_rsn.cc.o dot11_parsers/dot11_ie_48_rsn.cc -MF dot11_parsers/dot11_ie_48_rsn.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_52_rmm_neighbor.cc.o dot11_parsers/dot11_ie_52_rmm_neighbor.cc -MF dot11_parsers/dot11_ie_52_rmm_neighbor.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_54_mobility.cc.o dot11_parsers/dot11_ie_54_mobility.cc -MF dot11_parsers/dot11_ie_54_mobility.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_55_fastbss.cc.o dot11_parsers/dot11_ie_55_fastbss.cc -MF dot11_parsers/dot11_ie_55_fastbss.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_61_ht_op.cc.o dot11_parsers/dot11_ie_61_ht_op.cc -MF dot11_parsers/dot11_ie_61_ht_op.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_70_rm_capabilities.cc.o dot11_parsers/dot11_ie_70_rm_capabilities.cc -MF dot11_parsers/dot11_ie_70_rm_capabilities.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_113_mesh_config.cc.o dot11_parsers/dot11_ie_113_mesh_config.cc -MF dot11_parsers/dot11_ie_113_mesh_config.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_133_cisco_ccx.cc.o dot11_parsers/dot11_ie_133_cisco_ccx.cc -MF dot11_parsers/dot11_ie_133_cisco_ccx.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_150_vendor.cc.o dot11_parsers/dot11_ie_150_vendor.cc -MF dot11_parsers/dot11_ie_150_vendor.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_150_cisco_powerlevel.cc.o dot11_parsers/dot11_ie_150_cisco_powerlevel.cc -MF dot11_parsers/dot11_ie_150_cisco_powerlevel.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_191_vht_cap.cc.o dot11_parsers/dot11_ie_191_vht_cap.cc -MF dot11_parsers/dot11_ie_191_vht_cap.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_192_vht_op.cc.o dot11_parsers/dot11_ie_192_vht_op.cc -MF dot11_parsers/dot11_ie_192_vht_op.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_127_extended_capabilities.cc.o dot11_parsers/dot11_ie_127_extended_capabilities.cc -MF dot11_parsers/dot11_ie_127_extended_capabilities.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_vendor.cc.o dot11_parsers/dot11_ie_221_vendor.cc -MF dot11_parsers/dot11_ie_221_vendor.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_ms_wps.cc.o dot11_parsers/dot11_ie_221_ms_wps.cc -MF dot11_parsers/dot11_ie_221_ms_wps.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_ms_wmm.cc.o dot11_parsers/dot11_ie_221_ms_wmm.cc -MF dot11_parsers/dot11_ie_221_ms_wmm.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_dji_droneid.cc.o dot11_parsers/dot11_ie_221_dji_droneid.cc -MF dot11_parsers/dot11_ie_221_dji_droneid.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_wfa_wpa.cc.o dot11_parsers/dot11_ie_221_wfa_wpa.cc -MF dot11_parsers/dot11_ie_221_wfa_wpa.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_cisco_client_mfp.cc.o dot11_parsers/dot11_ie_221_cisco_client_mfp.cc -MF dot11_parsers/dot11_ie_221_cisco_client_mfp.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_wpa_transition.cc.o dot11_parsers/dot11_ie_221_wpa_transition.cc -MF dot11_parsers/dot11_ie_221_wpa_transition.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_rsn_pmkid.cc.o dot11_parsers/dot11_ie_221_rsn_pmkid.cc -MF dot11_parsers/dot11_ie_221_rsn_pmkid.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_221_wfa.cc.o dot11_parsers/dot11_ie_221_wfa.cc -MF dot11_parsers/dot11_ie_221_wfa.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_ie_255_ext_tag.cc.o dot11_parsers/dot11_ie_255_ext_tag.cc -MF dot11_parsers/dot11_ie_255_ext_tag.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_action.cc.o dot11_parsers/dot11_action.cc -MF dot11_parsers/dot11_action.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_wpa_eap.cc.o dot11_parsers/dot11_wpa_eap.cc -MF dot11_parsers/dot11_wpa_eap.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT dot11_parsers/dot11_p2p_ie.cc.o dot11_parsers/dot11_p2p_ie.cc -MF dot11_parsers/dot11_p2p_ie.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT bluetooth_parsers/btle.cc.o bluetooth_parsers/btle.cc -MF bluetooth_parsers/btle.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_80211.cc.o phy_80211.cc -MF phy_80211.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_80211_components.cc.o phy_80211_components.cc -MF phy_80211_components.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_80211_dissectors.cc.o phy_80211_dissectors.cc -MF phy_80211_dissectors.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_sensor.cc.o phy_sensor.cc -MF phy_sensor.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_meter.cc.o phy_meter.cc -MF phy_meter.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_adsb.cc.o phy_adsb.cc -MF phy_adsb.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_zwave.cc.o phy_zwave.cc -MF phy_zwave.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_bluetooth.cc.o phy_bluetooth.cc -MF phy_bluetooth.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_uav_drone.cc.o phy_uav_drone.cc -MF phy_uav_drone.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_nrf_mousejack.cc.o phy_nrf_mousejack.cc -MF phy_nrf_mousejack.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_btle.cc.o phy_btle.cc -MF phy_btle.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_802154.cc.o phy_802154.cc -MF phy_802154.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_80211_ssidtracker.cc.o phy_80211_ssidtracker.cc -MF phy_80211_ssidtracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT phy_radiation.cc.o phy_radiation.cc -MF phy_radiation.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_dissector_ipdata.cc.o kis_dissector_ipdata.cc -MF kis_dissector_ipdata.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT manuf.cc.o manuf.cc -MF manuf.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT bluetooth_ids.cc.o bluetooth_ids.cc -MF bluetooth_ids.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT adsb_icao.cc.o adsb_icao.cc -MF adsb_icao.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT logtracker.cc.o logtracker.cc -MF logtracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_ppilogfile.cc.o kis_ppilogfile.cc -MF kis_ppilogfile.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_databaselogfile.cc.o kis_databaselogfile.cc -MF kis_databaselogfile.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_pcapnglogfile.cc.o kis_pcapnglogfile.cc -MF kis_pcapnglogfile.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_wiglecsvlogfile.cc.o kis_wiglecsvlogfile.cc -MF kis_wiglecsvlogfile.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT messagebus_restclient.cc.o messagebus_restclient.cc -MF messagebus_restclient.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT streamtracker.cc.o streamtracker.cc -MF streamtracker.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT pcapng_stream_futurebuf.cc.o pcapng_stream_futurebuf.cc -MF pcapng_stream_futurebuf.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kis_database.cc.o kis_database.cc -MF kis_database.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT kismet_server.cc.o kismet_server.cc -MF kismet_server.cc.d
ar rcs libkismetdatasource.a protobuf_c/kismet.pb-c.c.o protobuf_c/datasource.pb-c.c.o protobuf_c/linuxbluetooth.pb-c.c.o protobuf_c/eventbus.pb-c.c.o simple_ringbuf_c.c.o capture_framework.c.o 
cc -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_strip_packets log_tools/kismetdb_strip_packet_content.c.o -lsqlite3 -rdynamic
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT log_tools/kismetdb_to_wiglecsv.cc.o log_tools/kismetdb_to_wiglecsv.cc -MF log_tools/kismetdb_to_wiglecsv.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT log_tools/kismetdb_dump_devices.cc.o log_tools/kismetdb_dump_devices.cc -MF log_tools/kismetdb_dump_devices.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT log_tools/kismetdb_statistics.cc.o log_tools/kismetdb_statistics.cc -MF log_tools/kismetdb_statistics.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT log_tools/kismetdb_to_kml.cc.o log_tools/kismetdb_to_kml.cc -MF log_tools/kismetdb_to_kml.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT log_tools/kismetdb_to_gpx.cc.o log_tools/kismetdb_to_gpx.cc -MF log_tools/kismetdb_to_gpx.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT log_tools/kismetdb_clean.cc.o log_tools/kismetdb_clean.cc -MF log_tools/kismetdb_clean.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT log_tools/kismetdb_to_pcap.cc.o log_tools/kismetdb_to_pcap.cc -MF log_tools/kismetdb_to_pcap.cc.d
c++ -std=gnu++17 -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -MT tools/kismet_discovery.cc.o tools/kismet_discovery.cc -MF tools/kismet_discovery.cc.d
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c protobuf_cpp/kismet.pb.cc -o protobuf_cpp/kismet.pb.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c protobuf_cpp/http.pb.cc -o protobuf_cpp/http.pb.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c protobuf_cpp/datasource.pb.cc -o protobuf_cpp/datasource.pb.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c protobuf_cpp/linuxbluetooth.pb.cc -o protobuf_cpp/linuxbluetooth.pb.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c protobuf_cpp/eventbus.pb.cc -o protobuf_cpp/eventbus.pb.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c util.cc -o util.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c crc32.cc -o crc32.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c macaddr.cc -o macaddr.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c uuid.cc -o uuid.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c xxhash.cc -o xxhash.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c boost_like_hash.cc -o boost_like_hash.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c sqlite3_cpp11.cc -o sqlite3_cpp11.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c globalregistry.cc -o globalregistry.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c eventbus.cc -o eventbus.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c packet.cc -o packet.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c configfile.cc -o configfile.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c battery.cc -o battery.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c ipctracker_v2.cc -o ipctracker_v2.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from macaddr.h:47,
                 from macaddr.cc:19:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from battery.cc:69:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
battery.cc:226:24:   required from here
  226 |     fpath = fmt::format("{}/status", bdir);
      |             ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_external.cc -o kis_external.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from uuid.h:38,
                 from uuid.cc:19:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dlttracker.cc -o dlttracker.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c antennatracker.cc -o antennatracker.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from globalregistry.cc:22:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasourcetracker.cc -o datasourcetracker.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_datasource.cc -o kis_datasource.cc.o
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from util.cc:71:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from configfile.cc:35:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_linux_bluetooth.cc -o datasource_linux_bluetooth.cc.o
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from eventbus.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from configfile.cc:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from packet.cc:35:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from ipctracker_v2.cc:21:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from ipctracker_v2.h:31,
                 from ipctracker_v2.cc:19:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
configfile.cc:535:9:   required from here
   96 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_ERROR)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packet.h:36:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from eventbus.cc:19:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packet.h:36:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from globalregistry.cc:25:
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from util.cc:21:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from json_adapter.h:26,
                 from kis_external.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from packet.cc:33:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from eventbus.h:53:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from antennatracker.h:23,
                 from antennatracker.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from json_adapter.h:25:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from dlttracker.h:32,
                 from dlttracker.cc:23:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from alertracker.h:34,
                 from datasourcetracker.cc:24:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from kis_datasource.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_linux_bluetooth.h:26,
                 from datasource_linux_bluetooth.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_rtl433.cc -o datasource_rtl433.cc.o
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from configfile.h:35,
                 from kis_external.cc:23:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_net_beast_httpd.h:40:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from alertracker.h:32:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from entrytracker.h:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from kis_external.cc:19:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_rtlamr.cc -o datasource_rtlamr.cc.o
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_external.cc:434:37:   required from here
  434 |         std::string fp = fmt::format("{}/{}",
      |                          ~~~~~~~~~~~^~~~~~~~~
  435 |                 Globalreg::globalreg->kismet_config->expand_log_path(rp, "", "", 0, 1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  436 |                 in_binary);
      |                 ~~~~~~~~~~           
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const boost::basic_string_view<char, std::char_traits<char> >&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = const boost::basic_string_view<char, std::char_traits<char> >&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const boost::basic_string_view<char, std::char_traits<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {boost::basic_string_view<char, std::char_traits<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const boost::basic_string_view<char, std::char_traits<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const boost::basic_string_view<char, std::char_traits<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_external.cc:919:40:   required from here
  919 |                             fmt::format("proxied req {}", con->uri()));
      |                             ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<const boost::basic_string_view<char, std::char_traits<char> >&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = boost::beast::http::verb&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = boost::beast::http::verb&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {boost::beast::http::verb&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {boost::beast::http::verb}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {boost::beast::http::verb&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, boost::beast::http::verb&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_external.cc:935:40:   required from here
  935 |                             fmt::format("{}", con->verb()), var_remap);
      |                             ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<boost::beast::http::verb&>((* & * & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_rtladsb.cc -o datasource_rtladsb.cc.o
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
kis_external.cc:401:18:   required from here
  401 |         lk.unlock();
      |         ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from dlttracker.h:30:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_ti_cc_2540.cc -o datasource_ti_cc_2540.cc.o
In file included from datasourcetracker.cc:27:
datasourcetracker.h:77:7: warning: 'class datasource_tracker_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
   77 | class datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from dlttracker.h:25:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from kis_datasource.cc:24:
datasourcetracker.h:77:7: warning: 'class datasource_tracker_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
   77 | class datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
datasourcetracker.cc:1796:7: warning: base class 'class datasource_tracker_worker' has accessible non-virtual destructor [-Wnon-virtual-dtor]
 1796 | class dst_chansplit_worker : public datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~
datasourcetracker.cc:1796:7: warning: 'class dst_chansplit_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_bluetooth.h:114:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from eventbus.h:53:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from alertracker.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.h:504:9:   required from here
  504 |         _MSG(fmt::format("(Remote) - {}", msg), msgtype);
      |              ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.h:504:9:   required from here
  504 |         _MSG(fmt::format("(Remote) - {}", msg), msgtype);
      |              ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = uuid&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = uuid&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, uuid&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.cc:714:25:   required from here
   93 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_INFO)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((uuid&)args#1), args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<uuid&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = uuid&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = uuid&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, uuid&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_datasource.cc:1980:36:   required from here
 1980 |             auto alrt = fmt::format("Source {} ({}) has encountered an error ({}).  "
      |                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1981 |                 "Remote sources are not locally reconnected; waiting for the remote source "
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1982 |                 "to reconnect to resume capture.", get_source_name(), get_source_uuid(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1983 |                 get_source_error_reason());
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((uuid&)args#1), ((std::__cxx11::basic_string<char>&)args#2))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<uuid&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const uuid&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = const uuid&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const uuid&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const uuid&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const uuid&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.cc:1555:13:   required from here
   96 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_ERROR)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), args#1, ((std::__cxx11::basic_string<char>&)args#2))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<const uuid&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_ti_cc_2531.cc -o datasource_ti_cc_2531.cc.o
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_rtl433.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_rtlamr.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_rtladsb.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kis_datasource.cc:117:14:   required from here
  117 |     lock.lock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
datasourcetracker.cc:50:14:   required from here
   50 |     lk.unlock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_ti_cc_2540.h:26,
                 from datasource_ti_cc_2540.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_ti_cc_2531.h:26,
                 from datasource_ti_cc_2531.cc:19:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from phy_adsb.h:27,
                 from datasource_rtladsb.cc:22:
datasourcetracker.h:77:7: warning: 'class datasource_tracker_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
   77 | class datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.h:504:9:   required from here
  504 |         _MSG(fmt::format("(Remote) - {}", msg), msgtype);
      |              ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_ubertooth_one.cc -o datasource_ubertooth_one.cc.o
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_nrf_51822.cc -o datasource_nrf_51822.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_nxp_kw41z.cc -o datasource_nxp_kw41z.cc.o
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_ubertooth_one.h:26,
                 from datasource_ubertooth_one.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_nrf_52840.cc -o datasource_nrf_52840.cc.o
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_nrf_51822.h:26,
                 from datasource_nrf_51822.cc:19:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_rz_killerbee.cc -o datasource_rz_killerbee.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_nxp_kw41z.h:26,
                 from datasource_nxp_kw41z.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_nrf_52840.h:26,
                 from datasource_nrf_52840.cc:19:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_scan.cc -o datasource_scan.cc.o
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_rz_killerbee.h:26,
                 from datasource_rz_killerbee.cc:19:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasourcetracker.h:32,
                 from datasource_scan.cc:19:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
datasourcetracker.h:77:7: warning: 'class datasource_tracker_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
   77 | class datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from datasourcetracker.h:30:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from datasourcetracker.h:25:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c datasource_bt_geiger.cc -o datasource_bt_geiger.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.h:504:9:   required from here
  504 |         _MSG(fmt::format("(Remote) - {}", msg), msgtype);
      |              ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_net_beast_httpd.cc -o kis_net_beast_httpd.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_httpd_registry.cc -o kis_httpd_registry.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c system_monitor.cc -o system_monitor.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from kis_net_beast_httpd.cc:19:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasource_bt_geiger.h:23,
                 from datasource_bt_geiger.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c base64.cc -o base64.cc.o
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from kis_httpd_registry.cc:21:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c gpstracker.cc -o gpstracker.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from kis_httpd_registry.h:28,
                 from kis_httpd_registry.cc:23:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_gps.cc -o kis_gps.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_net_beast_httpd.h:40:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from json_adapter.h:26,
                 from system_monitor.cc:37:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c gpsnmea_v2.cc -o gpsnmea_v2.cc.o
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from eventbus.h:53:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_datasource.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c gpsserial_v3.cc -o gpsserial_v3.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from entrytracker.h:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from system_monitor.cc:33:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from kis_datasource.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from kis_net_beast_httpd.h:25:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = boost::asio::ip::address&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = boost::asio::ip::address&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {boost::asio::ip::address&, short unsigned int&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {boost::asio::ip::address, short unsigned int}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {boost::asio::ip::address, short unsigned int}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, boost::asio::ip::address, short unsigned int>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_net_beast_httpd.cc:64:9:   required from here
   93 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_INFO)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((boost::asio::ip::address&)args#0), ((short unsigned int&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<boost::asio::ip::address&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_net_beast_httpd.cc:125:13:   required from here
   96 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_ERROR)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > >&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > >&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::vector<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > > > >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::vector<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > > > >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'void fmt::v9::print(FILE*, format_string<T ...>, T&& ...) [with T = {std::vector<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > > > >&}; FILE = FILE; format_string<T ...> = basic_format_string<char, std::vector<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > > > >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_net_beast_httpd.cc:943:15:   required from here
  943 |     fmt::print(sf, "{}", vec);
      |     ~~~~~~~~~~^~~~~~~~~~~~~~~
fmt/core.h:3311:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>((* & args#0))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > >&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kis_net_beast_httpd.cc:1847:16:   required from here
 1847 |         lk.lock();
      |         ~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from gpstracker.cc:24:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from gpstracker.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from system_monitor.cc:39:
system_monitor.h:135:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  135 | class Systemmonitor : public lifetime_global, public time_tracker_event {
      |       ^~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from kis_gps.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from entrytracker.h:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from system_monitor.cc:21:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from gpsnmea_v2.h:24,
                 from gpsnmea_v2.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_gps.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from gpsnmea_v2.h:24,
                 from gpsserial_v3.h:25,
                 from gpsserial_v3.cc:23:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from entrytracker.h:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
configfile.h:107:49:   required from 'T config_file::fetch_opt_as(const std::string&, const T&) [with T = unsigned int; std::string = std::__cxx11::basic_string<char>]'
  107 |             throw std::runtime_error(fmt::format("could not coerce content of key {}", in_key));
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
system_monitor.cc:139:76:   required from here
  139 |             Globalreg::globalreg->kismet_config->fetch_opt_as<unsigned int>("kis_log_system_status_rate", 30);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_gps.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/bits/stl_tree.h:63,
                 from /usr/include/c++/14.2.0/map:62,
                 from entrytracker.h:27:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c gpstcp_v2.cc -o gpstcp_v2.cc.o
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_gps.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from entrytracker.h:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from gpstracker.cc:23:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from gpsserial_v3.h:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from /usr/include/c++/14.2.0/stdexcept:39,
                 from gpsnmea_v2.cc:23:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = uuid&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = uuid&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, uuid&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, uuid&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
gpstracker.cc:231:21:   required from here
   93 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_INFO)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<uuid&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
gpstracker.cc:396:36:   required from here
  396 |         auto proposed = fmt::format("{}{}", in_name, num);
      |                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gpsnmea_v2.cc:361:12:   required from here
  361 |     lk.lock();
      |     ~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gpsnmea_v2.cc:361:12:   required from here
  361 |     lk.lock();
      |     ~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
gpsserial_v3.cc:203:14:   required from here
  203 |     lk.unlock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
gpsserial_v3.cc:203:14:   required from here
  203 |     lk.unlock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c gpsgpsd_v3.cc -o gpsgpsd_v3.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c gpsfake.cc -o gpsfake.cc.o
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from gpsnmea_v2.h:24,
                 from gpstcp_v2.h:25,
                 from gpstcp_v2.cc:23:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c gpsweb.cc -o gpsweb.cc.o
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_gps.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from gpstcp_v2.h:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from gpsgpsd_v3.h:25,
                 from gpsgpsd_v3.cc:24:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
gpstcp_v2.cc:143:13:   required from here
   96 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_ERROR)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_gps.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from gpsfake.h:24,
                 from gpsfake.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c gpsmeta.cc -o gpsmeta.cc.o
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from gpsgpsd_v3.h:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from gpsweb.h:24,
                 from gpsweb.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/mutex:40,
                 from /usr/include/c++/14.2.0/future:40,
                 from gpsgpsd_v3.cc:22:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_gps.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
gpsgpsd_v3.cc:170:13:   required from here
   96 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_ERROR)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<boost::asio::ip::basic_endpoint<boost::asio::ip::tcp>&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from entrytracker.h:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gpsgpsd_v3.cc:645:12:   required from here
  645 |     lk.lock();
      |     ~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gpsgpsd_v3.cc:645:12:   required from here
  645 |     lk.lock();
      |     ~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/bits/stl_tree.h:63,
                 from /usr/include/c++/14.2.0/map:62,
                 from entrytracker.h:27:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_gps.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c packetchain.cc -o packetchain.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from entrytracker.h:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/ios:44,
                 from /usr/include/c++/14.2.0/istream:40,
                 from /usr/include/c++/14.2.0/sstream:40,
                 from base64.h:22,
                 from gpsweb.cc:19:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from gpsmeta.h:24,
                 from gpsmeta.cc:20:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c packet_filter.cc -o packet_filter.cc.o
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from kis_gps.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c class_filter.cc -o class_filter.cc.o
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from entrytracker.h:32:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/ios:44,
                 from /usr/include/c++/14.2.0/istream:40,
                 from /usr/include/c++/14.2.0/sstream:40,
                 from base64.h:22,
                 from gpsmeta.cc:19:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from alertracker.h:34,
                 from packetchain.cc:30:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c trackedelement.cc -o trackedelement.cc.o
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from alertracker.h:32:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c trackedelement_workers.cc -o trackedelement_workers.cc.o
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet_filter.h:21,
                 from packet_filter.cc:22:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from class_filter.h:21,
                 from class_filter.cc:22:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from eventbus.h:53:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from alertracker.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packetchain.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from trackedelement.cc:34:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedelement.cc:26:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packetchain.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
packet_filter.h:43:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from trackedelement.cc:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
class_filter.h:44:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
configfile.h:107:49:   required from 'T config_file::fetch_opt_as(const std::string&, const T&) [with T = unsigned int; std::string = std::__cxx11::basic_string<char>]'
  107 |             throw std::runtime_error(fmt::format("could not coerce content of key {}", in_key));
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
packetchain.cc:303:87:   required from here
  303 |     n_packet_threads = Globalreg::globalreg->kismet_config->fetch_opt_as<unsigned int>("kismet_packet_threads", 0);
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_shared_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
packetchain.cc:431:18:   required from here
  431 |         lk.unlock();
      |         ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from kis_mutex.h:36,
                 from trackedelement_workers.h:26,
                 from trackedelement_workers.cc:19:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from packet_filter.cc:21:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from class_filter.cc:21:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/ios:44,
                 from /usr/include/c++/14.2.0/istream:40,
                 from /usr/include/c++/14.2.0/fstream:40,
                 from fmt/ostream.h:11:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
packet_filter.cc:41:27:   required from here
   41 |     base_uri = fmt::format("/filters/packet/{}", in_id);
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/ios:44,
                 from /usr/include/c++/14.2.0/istream:40,
                 from /usr/include/c++/14.2.0/fstream:40,
                 from fmt/ostream.h:11:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
class_filter.cc:41:27:   required from here
   41 |     base_uri = fmt::format("/filters/class/{}", in_id);
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from trackedelement_workers.h:27:
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c trackedcomponent.cc -o trackedcomponent.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c entrytracker.cc -o entrytracker.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c trackedlocation.cc -o trackedlocation.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c devicetracker_component.cc -o devicetracker_component.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from trackedcomponent.h:35,
                 from trackedcomponent.cc:21:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from entrytracker.cc:25:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from entrytracker.cc:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from entrytracker.cc:26:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from trackedlocation.h:36,
                 from trackedlocation.cc:24:
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
trackedlocation.h:79:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<int>':
trackedlocation.h:271:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from trackedlocation.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from trackedcomponent.h:36:
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from entrytracker.cc:22:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
entrytracker.cc:127:49:   required from here
  127 |             throw std::runtime_error(fmt::format("tried to register field {} of type {}/{} "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  128 |                         "but field already exists with conflicting type/signature {}/{}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  129 |                         in_name, in_builder->get_type_as_string(), in_builder->get_signature(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  130 |                         field_iter->second->builder->get_type_as_string(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  131 |                         field_iter->second->builder->get_signature()));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, ((std::__cxx11::basic_string<char>&)args#1), ((unsigned int&)args#2), ((std::__cxx11::basic_string<char>&)args#3), ((unsigned int&)args#4))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from trackedlocation.h:35:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
entrytracker.cc:220:14:   required from here
  220 |     lock.lock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/bits/specfun.h:43,
                 from /usr/include/c++/14.2.0/cmath:3898,
                 from /usr/include/c++/14.2.0/math.h:36,
                 from trackedlocation.cc:21:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from devicetracker_component.cc:33:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c devicetracker_view.cc -o devicetracker_view.cc.o
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from devicetracker_component.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c devicetracker_view_workers.cc -o devicetracker_view_workers.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_server_announce.cc -o kis_server_announce.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from devicetracker_component.h:38:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from devicetracker_component.cc:23:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c json_adapter.cc -o json_adapter.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from devicetracker_view.h:30,
                 from devicetracker_view.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from devicetracker_view_workers.h:30,
                 from devicetracker_view_workers.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from devicetracker_view.h:28:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasourcetracker.h:32,
                 from kis_server_announce.h:26,
                 from kis_server_announce.cc:30:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from devicetracker_view_workers.h:28:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from json_adapter.cc:36:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from kis_mutex.h:36,
                 from devicetracker_view_workers.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from gpstracker.h:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from devicetracker_view_workers.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from uuid.h:38,
                 from devicetracker_view.h:27:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from json_adapter.cc:32:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/streambuf:43,
                 from /usr/include/c++/14.2.0/bits/streambuf_iterator.h:35,
                 from /usr/include/c++/14.2.0/iterator:66,
                 from /usr/include/c++/14.2.0/pstl/algorithm_impl.h:13,
                 from /usr/include/c++/14.2.0/pstl/glue_execution_defs.h:50,
                 from /usr/include/c++/14.2.0/execution:39,
                 from devicetracker_view.cc:22:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
devicetracker_view.cc:103:27:   required from here
  103 |     auto uri = fmt::format("/devices/views/{}/devices", in_id);
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c plugintracker.cc -o plugintracker.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from json_adapter.cc:31:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
datasourcetracker.h:77:7: warning: 'class datasource_tracker_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
   77 | class datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from datasourcetracker.h:30:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from json_adapter.cc:23:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from kis_server_announce.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.h:504:9:   required from here
  504 |         _MSG(fmt::format("(Remote) - {}", msg), msgtype);
      |              ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c alertracker.cc -o alertracker.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from messagebus.h:32,
                 from plugintracker.cc:35:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from kis_external.h:43,
                 from plugintracker.h:107,
                 from plugintracker.cc:36:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c timetracker.cc -o timetracker.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from alertracker.h:34,
                 from alertracker.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c channeltracker2.cc -o channeltracker2.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c devicetracker.cc -o devicetracker.cc.o
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c devicetracker_httpd.cc -o devicetracker_httpd.cc.o
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from configfile.h:35,
                 from plugintracker.cc:33:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from alertracker.h:32:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_dlt.cc -o kis_dlt.cc.o
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from timetracker.cc:26:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29,
                 from timetracker.cc:28:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from timetracker.h:35:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
timetracker.cc:102:18:   required from here
  102 |         lock.lock();
      |         ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
timetracker.cc:102:18:   required from here
  102 |         lock.lock();
      |         ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from eventbus.h:53:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from alertracker.cc:21:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from channeltracker2.h:31,
                 from channeltracker2.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_dlt_ppi.cc -o kis_dlt_ppi.cc.o
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from devicetracker_httpd.cc:38:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from kis_gps.h:25,
                 from alertracker.h:34,
                 from devicetracker.cc:38:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from devicetracker_httpd.cc:39:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from kis_dlt.cc:24:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from channeltracker2.h:30:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alertracker.cc:336:14:   required from here
  336 |     lock.lock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alertracker.cc:336:14:   required from here
  336 |     lock.lock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from alertracker.h:32:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_dlt_radiotap.cc -o kis_dlt_radiotap.cc.o
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packet.h:36:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_dlt.cc:23:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from channeltracker2.cc:19:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from devicetracker.cc:41:
datasourcetracker.h:77:7: warning: 'class datasource_tracker_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
   77 | class datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from devicetracker_httpd.cc:35:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/bits/specfun.h:43,
                 from /usr/include/c++/14.2.0/cmath:3898,
                 from /usr/include/c++/14.2.0/math.h:36,
                 from util.h:38:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from messagebus.h:32,
                 from kis_dlt_ppi.cc:26:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from kis_dlt_ppi.cc:27:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from devicetracker_httpd.cc:21:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from eventbus.h:53:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from devicetracker.cc:21:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.h:504:9:   required from here
  504 |         _MSG(fmt::format("(Remote) - {}", msg), msgtype);
      |              ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from kis_dlt_radiotap.cc:26:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
devicetracker_httpd.cc:70:24:   required from here
   70 |     devlist_locker.lock();
      |     ~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:240:49:   required from 'void kis_unique_lock<M>::lock(const std::string&) [with M = kis_mutex; std::string = std::__cxx11::basic_string<char>]'
  240 |             throw std::runtime_error(fmt::format("invalid use: thread {} attempted to lock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |                         "unique lock {} when already locked for {}",
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |                         std::this_thread::get_id(), mutex.get_name(), op));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
devicetracker_httpd.cc:70:24:   required from here
   70 |     devlist_locker.lock();
      |     ~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1, args#2)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from kis_dlt_radiotap.cc:27:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = device_key&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = device_key&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {device_key&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {device_key}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {device_key&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, device_key&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
devicetracker.cc:483:53:   required from here
  483 |                     con->set_target_file(fmt::format("kismet-device-{}.pcapng", devkey));
      |                                          ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<device_key&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = uuid&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = uuid&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {uuid&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {uuid}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {uuid&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, uuid&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
devicetracker.cc:2019:66:   required from here
 2019 |                 std::make_shared<device_tracker_view>(fmt::format("seenby-{}", source_uuid),
      |                                                       ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<uuid&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_dlt_ppi.cc:23:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
devicetracker.cc:997:14:   required from here
  997 |     lk.unlock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_dlt_btle_radio.cc -o kis_dlt_btle_radio.cc.o
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_dlt_radiotap.cc:23:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kaitaistream.cc -o kaitaistream.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
kaitaistream.cc: In member function 'float kaitai::kstream::read_f4be()':
kaitaistream.cc:256:38: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  256 |     return reinterpret_cast<float &>(t);
      |                                      ^
kaitaistream.cc: In member function 'double kaitai::kstream::read_f8be()':
kaitaistream.cc:265:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  265 |     return reinterpret_cast<double &>(t);
      |                                       ^
kaitaistream.cc: In member function 'float kaitai::kstream::read_f4le()':
kaitaistream.cc:278:38: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  278 |     return reinterpret_cast<float &>(t);
      |                                      ^
kaitaistream.cc: In member function 'double kaitai::kstream::read_f8le()':
kaitaistream.cc:287:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  287 |     return reinterpret_cast<double &>(t);
      |                                       ^
In file included from messagebus.h:32,
                 from kis_dlt_btle_radio.cc:24:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from kis_dlt_btle_radio.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie.cc -o dot11_parsers/dot11_ie.cc.o
At global scope:
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_7_country.cc -o dot11_parsers/dot11_ie_7_country.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_11_qbss.cc -o dot11_parsers/dot11_ie_11_qbss.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_33_power.cc -o dot11_parsers/dot11_ie_33_power.cc.o
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from dot11_parsers/dot11_ie_11_qbss.cc:20:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_36_supported_channels.cc -o dot11_parsers/dot11_ie_36_supported_channels.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_45_ht_cap.cc -o dot11_parsers/dot11_ie_45_ht_cap.cc.o
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from dot11_parsers/dot11_ie_36_supported_channels.cc:20:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_dlt_btle_radio.cc:21:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./globalregistry.h:29,
                 from dot11_parsers/dot11_ie.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = std::vector<std::shared_ptr<dot11_ie::dot11_ie_tag> >]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie.cc:23:60:   required from here
   23 |     m_tags = Globalreg::new_from_pool<shared_ie_tag_vector>();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = std::vector<std::shared_ptr<dot11_ie::dot11_ie_tag> >]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie.cc:23:60:   required from here
   23 |     m_tags = Globalreg::new_from_pool<shared_ie_tag_vector>();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./globalregistry.h:29,
                 from dot11_parsers/dot11_ie_45_ht_cap.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = dot11_ie_45_ht_cap::dot11_ie_45_rx_mcs]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_45_ht_cap.cc:25:57:   required from here
   25 |     m_mcs = Globalreg::new_from_pool<dot11_ie_45_rx_mcs>();
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = dot11_ie_45_ht_cap::dot11_ie_45_rx_mcs]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_45_ht_cap.cc:25:57:   required from here
   25 |     m_mcs = Globalreg::new_from_pool<dot11_ie_45_rx_mcs>();
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_48_rsn.cc -o dot11_parsers/dot11_ie_48_rsn.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_52_rmm_neighbor.cc -o dot11_parsers/dot11_ie_52_rmm_neighbor.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_54_mobility.cc -o dot11_parsers/dot11_ie_54_mobility.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_55_fastbss.cc -o dot11_parsers/dot11_ie_55_fastbss.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_61_ht_op.cc -o dot11_parsers/dot11_ie_61_ht_op.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_70_rm_capabilities.cc -o dot11_parsers/dot11_ie_70_rm_capabilities.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_113_mesh_config.cc -o dot11_parsers/dot11_ie_113_mesh_config.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_133_cisco_ccx.cc -o dot11_parsers/dot11_ie_133_cisco_ccx.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_150_vendor.cc -o dot11_parsers/dot11_ie_150_vendor.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_150_cisco_powerlevel.cc -o dot11_parsers/dot11_ie_150_cisco_powerlevel.cc.o
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./globalregistry.h:29,
                 from dot11_parsers/dot11_ie_48_rsn.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_191_vht_cap.cc -o dot11_parsers/dot11_ie_191_vht_cap.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_192_vht_op.cc -o dot11_parsers/dot11_ie_192_vht_op.cc.o
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = dot11_ie_48_rsn::dot11_ie_48_rsn_rsn_cipher]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_48_rsn.cc:24:91:   required from here
   24 |     m_group_cipher = Globalreg::new_from_pool<dot11_ie_48_rsn::dot11_ie_48_rsn_rsn_cipher>();
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = dot11_ie_48_rsn::dot11_ie_48_rsn_rsn_cipher]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_48_rsn.cc:24:91:   required from here
   24 |     m_group_cipher = Globalreg::new_from_pool<dot11_ie_48_rsn::dot11_ie_48_rsn_rsn_cipher>();
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_127_extended_capabilities.cc -o dot11_parsers/dot11_ie_127_extended_capabilities.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_vendor.cc -o dot11_parsers/dot11_ie_221_vendor.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_ms_wps.cc -o dot11_parsers/dot11_ie_221_ms_wps.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_ms_wmm.cc -o dot11_parsers/dot11_ie_221_ms_wmm.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_dji_droneid.cc -o dot11_parsers/dot11_ie_221_dji_droneid.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_wfa_wpa.cc -o dot11_parsers/dot11_ie_221_wfa_wpa.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_cisco_client_mfp.cc -o dot11_parsers/dot11_ie_221_cisco_client_mfp.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_wpa_transition.cc -o dot11_parsers/dot11_ie_221_wpa_transition.cc.o
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./macaddr.h:47,
                 from dot11_parsers/dot11_ie_221_wpa_transition.h:27,
                 from dot11_parsers/dot11_ie_221_wpa_transition.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_rsn_pmkid.cc -o dot11_parsers/dot11_ie_221_rsn_pmkid.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_221_wfa.cc -o dot11_parsers/dot11_ie_221_wfa.cc.o
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./globalregistry.h:29,
                 from dot11_parsers/dot11_ie_221_ms_wps.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./globalregistry.h:29,
                 from dot11_parsers/dot11_ie_221_dji_droneid.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./globalregistry.h:29,
                 from dot11_parsers/dot11_ie_221_wfa_wpa.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_ie_255_ext_tag.cc -o dot11_parsers/dot11_ie_255_ext_tag.cc.o
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = dot11_ie_221_dji_droneid::dji_subcommand_flight_reg]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_221_dji_droneid.cc:32:70:   required from here
   32 |         auto fr = Globalreg::new_from_pool<dji_subcommand_flight_reg>();
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = dot11_ie_221_dji_droneid::dji_subcommand_flight_reg]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_221_dji_droneid.cc:32:70:   required from here
   32 |         auto fr = Globalreg::new_from_pool<dji_subcommand_flight_reg>();
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = std::vector<std::shared_ptr<dot11_ie_221_ms_wps::wps_de_sub_element> >]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_221_ms_wps.cc:24:80:   required from here
   24 |     m_wps_elements = Globalreg::new_from_pool<shared_wps_de_sub_element_vector>();
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = std::vector<std::shared_ptr<dot11_ie_221_ms_wps::wps_de_sub_element> >]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_221_ms_wps.cc:24:80:   required from here
   24 |     m_wps_elements = Globalreg::new_from_pool<shared_wps_de_sub_element_vector>();
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = std::vector<std::shared_ptr<dot11_ie_221_wfa_wpa::wpa_v1_cipher> >]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_221_wfa_wpa.cc:28:78:   required from here
   28 |     m_unicast_ciphers = Globalreg::new_from_pool<shared_wpa_v1_cipher_vector>();
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = std::vector<std::shared_ptr<dot11_ie_221_wfa_wpa::wpa_v1_cipher> >]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_ie_221_wfa_wpa.cc:28:78:   required from here
   28 |     m_unicast_ciphers = Globalreg::new_from_pool<shared_wpa_v1_cipher_vector>();
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_action.cc -o dot11_parsers/dot11_action.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_wpa_eap.cc -o dot11_parsers/dot11_wpa_eap.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c dot11_parsers/dot11_p2p_ie.cc -o dot11_parsers/dot11_p2p_ie.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c bluetooth_parsers/btle.cc -o bluetooth_parsers/btle.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_80211.cc -o phy_80211.cc.o
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./globalregistry.h:29,
                 from dot11_parsers/dot11_action.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./macaddr.h:47,
                 from bluetooth_parsers/btle.h:27,
                 from bluetooth_parsers/btle.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_80211_components.cc -o phy_80211_components.cc.o
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = dot11_action::action_rmm]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_action.cc:27:54:   required from here
   27 |         auto r = Globalreg::new_from_pool<action_rmm>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = dot11_action::action_rmm]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_action.cc:27:54:   required from here
   27 |         auto r = Globalreg::new_from_pool<action_rmm>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_80211_dissectors.cc -o phy_80211_dissectors.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_sensor.cc -o phy_sensor.cc.o
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from ./globalregistry.h:29,
                 from dot11_parsers/dot11_p2p_ie.cc:19:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = std::vector<std::shared_ptr<dot11_wfa_p2p_ie::dot11_wfa_p2p_ie_tag> >]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_p2p_ie.cc:23:60:   required from here
   23 |     m_tags = Globalreg::new_from_pool<shared_ie_tag_vector>();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
./globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = std::vector<std::shared_ptr<dot11_wfa_p2p_ie::dot11_wfa_p2p_ie_tag> >]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
dot11_parsers/dot11_p2p_ie.cc:23:60:   required from here
   23 |     m_tags = Globalreg::new_from_pool<shared_ie_tag_vector>();
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phy_80211.cc:35:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_meter.cc -o phy_meter.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phy_80211.h:48,
                 from phy_80211_components.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_adsb.cc -o phy_adsb.cc.o
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phy_80211.h:48,
                 from phy_80211_dissectors.cc:36:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from phy_sensor.h:26,
                 from phy_sensor.cc:22:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packetchain.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_zwave.cc -o phy_zwave.cc.o
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from manuf.h:41,
                 from phy_80211_components.cc:24:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_bluetooth.cc -o phy_bluetooth.cc.o
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packetchain.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from phy_sensor.h:25:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_80211_components.h:393:9:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_80211_components.h:500:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_uav_drone.cc -o phy_uav_drone.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_nrf_mousejack.cc -o phy_nrf_mousejack.cc.o
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_80211_components.h:393:9:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_80211_components.h:500:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from phy_80211.cc:48:
phy_80211.h:393:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  393 | class kis_80211_phy : public kis_phy_handler, public time_tracker_event {
      |       ^~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from phy_meter.h:26,
                 from phy_meter.cc:24:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
phy_80211.h:393:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  393 | class kis_80211_phy : public kis_phy_handler, public time_tracker_event {
      |       ^~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_80211_components.h:393:9:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from manuf.h:39:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_80211_components.h:500:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_btle.cc -o phy_btle.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_meter.h:107:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
phy_80211.h:393:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  393 | class kis_80211_phy : public kis_phy_handler, public time_tracker_event {
      |       ^~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_802154.cc -o phy_802154.cc.o
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from dot11_parsers/dot11_ie.h:31,
                 from phy_80211_components.cc:20:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from adsb_icao.h:43,
                 from phy_adsb.h:26,
                 from phy_adsb.cc:22:
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
adsb_icao.h:80:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
adsb_icao.h:86:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_80211.h:47:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_sensor.h:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from gpstracker.h:27,
                 from kis_datasource.h:29,
                 from datasourcetracker.h:32,
                 from phy_adsb.h:27:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_80211.cc:34:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from phy_meter.h:25:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/bits/stl_tree.h:63,
                 from /usr/include/c++/14.2.0/map:62,
                 from phy_80211_dissectors.cc:28:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from phy_80211.cc:23:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from phy_zwave.h:26,
                 from phy_zwave.cc:22:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_meter.h:107:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phy_bluetooth.cc:31:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_80211_ssidtracker.cc -o phy_80211_ssidtracker.cc.o
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from phy_zwave.h:25:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from phy_uav_drone.h:23,
                 from phy_uav_drone.cc:22:
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
trackedlocation.h:79:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<int>':
trackedlocation.h:271:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packetchain.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phyhandler.h:28,
                 from phy_uav_drone.h:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phy_nrf_mousejack.cc:31:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from phy_meter.cc:22:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c phy_radiation.cc -o phy_radiation.cc.o
datasourcetracker.h:77:7: warning: 'class datasource_tracker_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
   77 | class datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/streambuf:43,
                 from /usr/include/c++/14.2.0/bits/streambuf_iterator.h:35,
                 from /usr/include/c++/14.2.0/iterator:66,
                 from fmt/core.h:14:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phy_btle.cc:32:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from adsb_icao.h:39:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phy_802154.cc:31:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packetchain.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_dissector_ipdata.cc -o kis_dissector_ipdata.cc.o
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_zwave.h:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from adsb_icao.h:37:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_bluetooth.h:114:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.h:504:9:   required from here
  504 |         _MSG(fmt::format("(Remote) - {}", msg), msgtype);
      |              ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = uuid&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = uuid&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {uuid&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {uuid}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {uuid&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, uuid&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
phy_adsb.cc:136:43:   required from here
  136 |                     auto uri = fmt::format("/phy/ADSB/by-uuid/{}/proxy", src_uuid);
      |                                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<uuid&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packetchain.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_bluetooth.cc:30:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from packetchain.h:39:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from phy_bluetooth.cc:23:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_80211_components.h:393:9:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_80211_components.h:500:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from devicetracker.h:44,
                 from phy_80211_ssidtracker.h:26,
                 from phy_80211_ssidtracker.cc:19:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_nrf_mousejack.cc:30:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from phy_uav_drone.cc:23:
phy_80211.h:393:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  393 | class kis_80211_phy : public kis_phy_handler, public time_tracker_event {
      |       ^~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from trackedelement.h:41:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from phy_nrf_mousejack.cc:23:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from trackedelement.h:31:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_btle.h:82:74:   required from here
   82 |         register_field("btle.short_service.uuid", "16bit service UUID", &short_uuid);
      |                                                                          ^~~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_btle.cc:31:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_802154.cc:30:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from phyhandler.h:28,
                 from phy_radiation.h:25,
                 from phy_radiation.cc:22:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from devicetracker.h:42:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from phy_btle.cc:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/list:62,
                 from phy_802154.cc:23:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from kis_dissector_ipdata.cc:24:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from kis_dissector_ipdata.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from phyhandler.h:27:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_80211_components.h:393:9:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_80211_components.h:500:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from phy_80211_ssidtracker.cc:22:
phy_80211.h:393:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  393 | class kis_80211_phy : public kis_phy_handler, public time_tracker_event {
      |       ^~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from devicetracker.h:40:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/functional:53,
                 from phy_80211_ssidtracker.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from phy_radiation.h:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_dissector_ipdata.cc:21:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c manuf.cc -o manuf.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c bluetooth_ids.cc -o bluetooth_ids.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c adsb_icao.cc -o adsb_icao.cc.o
In file included from messagebus.h:32,
                 from manuf.cc:24:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from manuf.cc:23:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from configfile.h:35,
                 from manuf.cc:22:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c logtracker.cc -o logtracker.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_ppilogfile.cc -o kis_ppilogfile.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from bluetooth_ids.cc:23:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from bluetooth_ids.h:32,
                 from bluetooth_ids.cc:19:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from bluetooth_ids.h:31:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from adsb_icao.cc:24:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from entrytracker.h:36,
                 from adsb_icao.cc:23:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
adsb_icao.h:80:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
adsb_icao.h:86:5:   required from here
   81 |         return (rtype) get_tracker_value<ptype>(cvar); \
      |                                                     ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from configfile.h:35,
                 from adsb_icao.cc:22:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from logtracker.h:29,
                 from logtracker.cc:23:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from kis_ppilogfile.h:35,
                 from kis_ppilogfile.cc:26:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from kis_ppilogfile.h:36:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_databaselogfile.cc -o kis_databaselogfile.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from logtracker.h:28:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from logtracker.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_pcapnglogfile.cc -o kis_pcapnglogfile.cc.o
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from logtracker.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = uuid&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = uuid&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {uuid&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, uuid, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
logtracker.cc:209:21:   required from here
   93 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_INFO)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((uuid&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<uuid&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_wiglecsvlogfile.cc -o kis_wiglecsvlogfile.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_80211_components.h:393:9:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_80211_components.h:500:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from kis_ppilogfile.cc:28:
phy_80211.h:393:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  393 | class kis_80211_phy : public kis_phy_handler, public time_tracker_event {
      |       ^~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_ppilogfile.h:33:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from kis_ppilogfile.h:27:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c messagebus_restclient.cc -o messagebus_restclient.cc.o
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from json_adapter.h:26,
                 from kis_databaselogfile.cc:25:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c streamtracker.cc -o streamtracker.cc.o
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c pcapng_stream_futurebuf.cc -o pcapng_stream_futurebuf.cc.o
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
kis_ppilogfile.cc:108:14:   required from here
  108 |     lk.unlock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
kis_ppilogfile.cc:108:14:   required from here
  108 |     lk.unlock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from json_adapter.h:25:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kis_database.cc -o kis_database.cc.o
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from logtracker.h:29,
                 from kis_pcapnglogfile.h:25,
                 from kis_pcapnglogfile.cc:22:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from packet.h:40,
                 from devicetracker_component.h:41,
                 from logtracker.h:29,
                 from kis_wiglecsvlogfile.h:26,
                 from kis_wiglecsvlogfile.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from logtracker.h:28:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_databaselogfile.cc:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from logtracker.h:28:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from messagebus_restclient.cc:21:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from messagebus_restclient.h:34,
                 from messagebus_restclient.cc:22:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from globalregistry.h:26:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = device_key&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = device_key&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {device_key&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {device_key}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {device_key}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, device_key>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_databaselogfile.cc:817:9:   required from here
   96 |     Globalreg::globalreg->messagebus->inject_message(fmt::format(__VA_ARGS__), MSGFLAG_ERROR)
      |                                                      ~~~~~~~~~~~^~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((device_key&)args#0))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<device_key&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from streamtracker.h:29,
                 from streamtracker.cc:21:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from configfile.h:35,
                 from kis_pcapnglogfile.cc:21:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from messagebus.h:32,
                 from kis_database.cc:21:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from kis_database.h:32,
                 from kis_database.cc:19:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from configfile.h:31:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from pcapng_stream_futurebuf.h:28,
                 from pcapng_stream_futurebuf.cc:22:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from packetchain.h:42,
                 from pcapng_stream_futurebuf.h:30:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_80211_components.h:393:9:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_80211_components.h:500:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from kis_wiglecsvlogfile.h:28:
phy_80211.h:393:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  393 | class kis_80211_phy : public kis_phy_handler, public time_tracker_event {
      |       ^~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from eventbus.h:53:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from messagebus.h:32,
                 from future_chainbuf.h:33,
                 from kis_net_beast_httpd.h:41:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from streamtracker.h:28:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from configfile.h:35,
                 from kis_wiglecsvlogfile.h:24:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/deque:62,
                 from /usr/include/c++/14.2.0/queue:62,
                 from messagebus.h:25:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from configfile.h:31:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from globalregistry.h:29,
                 from streamtracker.h:26:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int&, int&, double&, double&, double&, const char (&)[5]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int, double, double, double, char [5]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'void fmt::v9::print(FILE*, format_string<T ...>, T&& ...) [with T = {mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int&, double&, double&, double&, const char (&)[5]}; FILE = FILE; format_string<T ...> = basic_format_string<char, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int&, double&, double&, double&, const char (&)[5]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_wiglecsvlogfile.cc:311:19:   required from here
  311 |         fmt::print(wigle->csvfile, "{},{},{},{},{},{},{:3.6f},{:3.6f},{:f},0,{}\n",
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  312 |                 dev->get_macaddr(),
      |                 ~~~~~~~~~~~~~~~~~~~
  313 |                 name,
      |                 ~~~~~
  314 |                 crypt,
      |                 ~~~~~~
  315 |                 ts.str(),
      |                 ~~~~~~~~~
  316 |                 (int) channel,
      |                 ~~~~~~~~~~~~~~
  317 |                 signal,
      |                 ~~~~~~~
  318 |                 gps->lat, gps->lon, gps->alt,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  319 |                 "WIFI");
      |                 ~~~~~~~
fmt/core.h:3311:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>((* & args#0), (* & args#1), (* & args#2), (* & args#3), (* & args#4), (* & args#5), (* & args#6), (* & args#7), (* & args#8), (* & args#9))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_tempbuf.h:62,
                 from /usr/include/c++/14.2.0/memory:66,
                 from streamtracker.h:24:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedelement.h:972:11:   required from 'std::string tracker_element_core_numeric<N, T, S>::as_string() const [with N = unsigned char; tracker_type T = tracker_type::tracker_placeholder_missing; S = numerical_string<unsigned char>; std::string = std::__cxx11::basic_string<char>]'
  972 |         S s;
      |           ^
trackedelement.h:971:25:   required from here
  971 |     virtual std::string as_string() const override {
      |                         ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
kis_wiglecsvlogfile.cc:191:14:   required from here
  191 |     lk.unlock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
kis_wiglecsvlogfile.cc:191:14:   required from here
  191 |     lk.unlock();
      |     ~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from kis_mutex.h:36,
                 from pcapng_stream_futurebuf.cc:21:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/tuple:38,
                 from /usr/include/c++/14.2.0/mutex:40,
                 from /usr/include/c++/14.2.0/future:40,
                 from kis_mutex.h:27:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c kismet_server.cc -o kismet_server.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet_cap_kismetdb capture_kismetdb.c.o libkismetdatasource.a  -lpthread -lprotobuf-c -lm -lsqlite3
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet_cap_pcapfile capture_pcapfile.c.o libkismetdatasource.a -lpcap  -lpthread -lprotobuf-c -lm
(cd capture_linux_wifi && make)
make[1]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_linux_wifi'
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     ../interface_control.c | sed -e "s/\.o/\.c.o/" > ../interface_control.c.d
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     ../wifi_ht_channels.c | sed -e "s/\.o/\.c.o/" > ../wifi_ht_channels.c.d
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     linux_wireless_control.c | sed -e "s/\.o/\.c.o/" > linux_wireless_control.c.d
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     linux_netlink_control.c | sed -e "s/\.o/\.c.o/" > linux_netlink_control.c.d
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     linux_nexmon_control.c | sed -e "s/\.o/\.c.o/" > linux_nexmon_control.c.d
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     linux_wireless_rfkill.c | sed -e "s/\.o/\.c.o/" > linux_wireless_rfkill.c.d
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     capture_linux_wifi.c | sed -e "s/\.o/\.c.o/" > capture_linux_wifi.c.d
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c ../interface_control.c -o ../interface_control.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c ../wifi_ht_channels.c -o ../wifi_ht_channels.c.o
(cd capture_linux_bluetooth && make)
make[1]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_linux_bluetooth'
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     linux_bt_rfkill.c | sed -e "s/\.o/\.c.o/" > linux_bt_rfkill.c.d
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c linux_wireless_control.c -o linux_wireless_control.c.o
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     capture_linux_bluetooth.c | sed -e "s/\.o/\.c.o/" > capture_linux_bluetooth.c.d
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c linux_bt_rfkill.c -o linux_bt_rfkill.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c capture_linux_bluetooth.c -o capture_linux_bluetooth.c.o
capture_linux_bluetooth.c: In function 'handle_mgmt_response':
capture_linux_bluetooth.c:455:32: warning: unused variable 'cstat' [-Wunused-variable]
  455 |     struct mgmt_ev_cmd_status *cstat;
      |                                ^~~~~
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c linux_netlink_control.c -o linux_netlink_control.c.o
At top level:
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet_cap_linux_bluetooth linux_bt_rfkill.c.o capture_linux_bluetooth.c.o ../libkismetdatasource.a  -lpthread -lprotobuf-c -lm
make[1]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_linux_bluetooth'
(cd capture_nrf_51822 && make)
make[1]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nrf_51822'
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     capture_nrf_51822.c | sed -e "s/\.o/\.c.o/" > capture_nrf_51822.c.d
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c capture_nrf_51822.c -o capture_nrf_51822.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c linux_nexmon_control.c -o linux_nexmon_control.c.o
cc -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet_cap_nrf_51822 capture_nrf_51822.c.o  ../libkismetdatasource.a  -lpthread -lprotobuf-c -lm
make[1]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nrf_51822'
(cd capture_nxp_kw41z && make)
make[1]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nxp_kw41z'
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     capture_nxp_kw41z.c | sed -e "s/\.o/\.c.o/" > capture_nxp_kw41z.c.d
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c linux_wireless_rfkill.c -o linux_wireless_rfkill.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c capture_nxp_kw41z.c -o capture_nxp_kw41z.c.o
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c capture_linux_wifi.c -o capture_linux_wifi.c.o
capture_linux_wifi.c: In function 'chancontrol_callback':
capture_linux_wifi.c:1265:21: warning: variable 'check_r' set but not used [-Wunused-but-set-variable]
 1265 |                 int check_r = 0;
      |                     ^~~~~~~
cc -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet_cap_nxp_kw41z capture_nxp_kw41z.c.o  ../libkismetdatasource.a  -lpthread -lprotobuf-c -lm
make[1]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nxp_kw41z'
(cd capture_nrf_52840 && make)
make[1]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nrf_52840'
cc -MM -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     capture_nrf_52840.c | sed -e "s/\.o/\.c.o/" > capture_nrf_52840.c.d
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread    -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c capture_nrf_52840.c -o capture_nrf_52840.c.o
cc -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet_cap_nrf_52840 capture_nrf_52840.c.o  ../libkismetdatasource.a  -lpthread -lprotobuf-c -lm
make[1]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nrf_52840'
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c log_tools/kismetdb_to_wiglecsv.cc -o log_tools/kismetdb_to_wiglecsv.cc.o
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
At top level:
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet_cap_linux_wifi ../interface_control.c.o ../wifi_ht_channels.c.o linux_wireless_control.c.o linux_netlink_control.c.o linux_nexmon_control.c.o linux_wireless_rfkill.c.o capture_linux_wifi.c.o ../libkismetdatasource.a -lpcap  -lnl-genl-3 -lnl-3  -lpthread -lprotobuf-c -lm
make[1]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_linux_wifi'
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c log_tools/kismetdb_dump_devices.cc -o log_tools/kismetdb_dump_devices.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c log_tools/kismetdb_statistics.cc -o log_tools/kismetdb_statistics.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c log_tools/kismetdb_to_kml.cc -o log_tools/kismetdb_to_kml.cc.o
In file included from messagebus.h:32,
                 from kismet_server.cc:51:
timetracker.h:162:7: warning: 'class time_tracker_event' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  162 | class time_tracker_event {
      |       ^~~~~~~~~~~~~~~~~~
In file included from trackedcomponent.h:36,
                 from eventbus.h:55,
                 from messagebus.h:29:
trackedelement.h: In instantiation of 'class numerical_string<int>':
messagebus.h:76:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<long unsigned int>':
messagebus.h:77:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<long unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from ./boost/beast/core/error.hpp:85,
                 from ./boost/beast/core/detail/bind_handler.hpp:13,
                 from ./boost/beast/core/bind_handler.hpp:14,
                 from ./boost/beast/core/async_base.hpp:14,
                 from ./boost/beast/core.hpp:15,
                 from boost/beast.hpp:15,
                 from kis_net_beast_httpd.h:32,
                 from kis_external.h:43,
                 from plugintracker.h:107,
                 from kismet_server.cc:53:
./boost/beast/core/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/core/impl/error.ipp:20:7: warning: 'class boost::beast::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/core/impl/error.ipp:55:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   55 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/core/impl/error.ipp:55:7: warning: 'class boost::beast::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from log_tools/kismetdb_to_wiglecsv.cc:46:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from log_tools/kismetdb_dump_devices.cc:39:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'void fmt::v9::print(FILE*, format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; FILE = FILE; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
log_tools/kismetdb_dump_devices.cc:296:23:   required from here
  296 |             fmt::print(ofile, "{}", ss.str());
      |             ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3311:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>((* & args#0))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/http/error.hpp:173,
                 from ./boost/beast/http/basic_dynamic_body.hpp:17,
                 from ./boost/beast/http.hpp:15,
                 from boost/beast.hpp:16:
./boost/beast/http/impl/error.ipp:21:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   21 | class http_error_category : public error_category
      |       ^~~~~~~~~~~~~~~~~~~
./boost/beast/http/impl/error.ipp:21:7: warning: 'class boost::beast::http::detail::http_error_category' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./boost/beast/websocket/error.hpp:253,
                 from ./boost/beast/websocket.hpp:15,
                 from boost/beast.hpp:18:
./boost/beast/websocket/impl/error.ipp:20:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   20 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:20:7: warning: 'class boost::beast::websocket::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
./boost/beast/websocket/impl/error.ipp:117:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  117 | class error_conditions : public error_category
      |       ^~~~~~~~~~~~~~~~
./boost/beast/websocket/impl/error.ipp:117:7: warning: 'class boost::beast::websocket::detail::error_conditions' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from log_tools/kismetdb_statistics.cc:41:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'void fmt::v9::print(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
log_tools/kismetdb_statistics.cc:358:27:   required from here
  358 |                 fmt::print("{}", ti.first);
      |                 ~~~~~~~~~~^~~~~~~~~~~~~~~~
./fmt/core.h:3294:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>((* & args#0))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./boost/beast/zlib/error.hpp:148,
                 from ./boost/beast/zlib/deflate_stream.hpp:14,
                 from ./boost/beast/websocket/detail/impl_base.hpp:21,
                 from ./boost/beast/websocket/stream.hpp:20,
                 from ./boost/beast/websocket.hpp:18:
./boost/beast/zlib/impl/error.ipp:49:7: warning: base class 'class boost::system::error_category' has accessible non-virtual destructor [-Wnon-virtual-dtor]
   49 | class error_codes : public error_category
      |       ^~~~~~~~~~~
./boost/beast/zlib/impl/error.ipp:49:7: warning: 'class boost::beast::zlib::detail::error_codes' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from log_tools/kismetdb_to_kml.cc:46:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c log_tools/kismetdb_to_gpx.cc -o log_tools/kismetdb_to_gpx.cc.o
trackedelement.h: In instantiation of 'class numerical_string<long int>':
trackedrrd.h:374:71:   required from here
  374 |         register_field("kismet.common.rrd.blank_val", "blank value", &blank_val);
      |                                                                       ^~~~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<long int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<float>':
trackedlocation.h:77:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:1167:7: warning: 'class float_numerical_string<float>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned char>':
trackedlocation.h:78:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<unsigned char>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class float_numerical_string<double>':
trackedlocation.h:268:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:1167:7: warning: 'class float_numerical_string<double>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
 1167 | class float_numerical_string {
      |       ^~~~~~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<unsigned int>':
devicetracker_component.h:372:13:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from kismet_server.cc:64:
datasourcetracker.h:77:7: warning: 'class datasource_tracker_worker' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
   77 | class datasource_tracker_worker {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from log_tools/kismetdb_to_gpx.cc:45:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short int>':
phy_80211_components.h:393:9:   required from here
   64 |     f = tracker_element_clone_adaptor(b->f); \
      |                                           ^
trackedelement.h:924:7: warning: 'class numerical_string<short int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
trackedelement.h: In instantiation of 'class numerical_string<short unsigned int>':
phy_80211_components.h:500:5:   required from here
  135 |             if (cvar != nullptr) {\
      |                         ^~~~~~~
trackedelement.h:924:7: warning: 'class numerical_string<short unsigned int>' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  924 | class numerical_string {
      |       ^~~~~~~~~~~~~~~~
In file included from kis_wiglecsvlogfile.h:28,
                 from kismet_server.cc:94:
phy_80211.h:393:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  393 | class kis_80211_phy : public kis_phy_handler, public time_tracker_event {
      |       ^~~~~~~~~~~~~
In file included from kismet_server.cc:101:
system_monitor.h:135:7: warning: base class 'class time_tracker_event' has accessible non-virtual destructor [-Wnon-virtual-dtor]
  135 | class Systemmonitor : public lifetime_global, public time_tracker_event {
      |       ^~~~~~~~~~~~~
In file included from fmt/format.h:48,
                 from fmt/ostream.h:20,
                 from fmt.h:23,
                 from util.h:62,
                 from kismet_server.cc:46:
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14.2.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/14.2.0/string:51,
                 from /usr/include/c++/14.2.0/bits/locale_classes.h:40,
                 from /usr/include/c++/14.2.0/bits/ios_base.h:41,
                 from /usr/include/c++/14.2.0/ios:44,
                 from /usr/include/c++/14.2.0/ostream:40,
                 from /usr/include/c++/14.2.0/iostream:41,
                 from kismet_server.cc:29:
/usr/include/c++/14.2.0/bits/stl_pair.h: In instantiation of 'constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const double&; _T2 = const double&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = double; typename decay<_Tp>::type = double; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = double; typename decay<_Tp2>::type = double]':
trackedelement.h:1711:30:   required from 'void tracker_element_core_pair<T1, T2, TT>::set(const T1&, const T2&) [with T1 = double; T2 = double; tracker_type TT = tracker_type::tracker_pair_double]'
 1711 |         pair = std::make_pair(t1, t2);
      |                ~~~~~~~~~~~~~~^~~~~~~~
trackedlocation.h:74:22:   required from here
   74 |         geopoint->set(lon, lat);
      |         ~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/c++/14.2.0/bits/stl_pair.h:1132:5: note: parameter passing for argument of type 'std::pair<double, double>' when C++17 is enabled changed to match C++14 in GCC 10.1
 1132 |     make_pair(_T1&& __x, _T2&& __y)
      |     ^~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
datasourcetracker.h:504:9:   required from here
  504 |         _MSG(fmt::format("(Remote) - {}", msg), msgtype);
      |              ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = mac_addr&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = mac_addr&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, unsigned int&, double&, mac_addr&, mac_addr&, mac_addr&, mac_addr&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned char, unsigned int, double, mac_addr, mac_addr, mac_addr, mac_addr, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
alertracker.h:232:46:   required from here
  232 |         set_hash(adler32_checksum(fmt::format("{} {} {} {} {} {} {} {} {}",
      |                                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  233 |                         get_header(), get_severity(), get_phy(), get_timestamp(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  234 |                         get_transmitter_mac(), get_source_mac(), get_dest_mac(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  235 |                         get_other_mac(), get_channel())));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((unsigned char&)args#1), ((unsigned int&)args#2), ((double&)args#3), ((mac_addr&)args#4), ((mac_addr&)args#5), ((mac_addr&)args#6), ((mac_addr&)args#7), ((std::__cxx11::basic_string<char>&)args#8))'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<mac_addr&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::thread::id&]':
fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = std::thread::id&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::thread::id&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::thread::id, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::thread::id, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
kis_mutex.h:263:49:   required from 'void kis_unique_lock<M>::unlock() [with M = kis_mutex]'
  263 |             throw std::runtime_error(fmt::format("unvalid use:  thread{} attempted to unlock "
      |                                      ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264 |                         "unique lock {} when not locked", std::this_thread::get_id(),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  265 |                         mutex.get_name()));
      |                         ~~~~~~~~~~~~~~~~~        
globalregistry.h:361:22:   required from 'std::shared_ptr<_Tp> Globalreg::new_from_pool(std::function<std::shared_ptr<_Tp>()>) [with T = tracker_element_alias]'
  361 |             lk.unlock();
      |             ~~~~~~~~~^~
trackedelement.h:418:50:   required from here
  418 |         auto r = Globalreg::new_from_pool<this_t>();
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::thread::id&)args#0), args#1)'
fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::thread::id&>((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c log_tools/kismetdb_clean.cc -o log_tools/kismetdb_clean.cc.o
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c log_tools/kismetdb_to_pcap.cc -o log_tools/kismetdb_to_pcap.cc.o
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from log_tools/kismetdb_clean.cc:41:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from ./fmt/format.h:48,
                 from ./fmt/ostream.h:20,
                 from ./fmt.h:23,
                 from log_tools/kismetdb_to_pcap.cc:46:
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = fmt::v9::basic_string_view<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = fmt::v9::basic_string_view<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {fmt::v9::basic_string_view<char>&, const char (&)[3]}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {fmt::v9::basic_string_view<char>, char [3]}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = appender; T = {basic_string_view<char>&, const char (&)[3]}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, basic_string_view<char>&, const char (&)[3]>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./fmt/format-inl.h:65:14:   required from here
   65 |     format_to(it, FMT_STRING("{}{}"), message, SEP);
      |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3235:52:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, args#1)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<fmt::v9::basic_string_view<char> >((*(const fmt::v9::basic_string_view<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
./macaddr.h:473:27:   required from here
  473 |         return fmt::format("{}/{}", mac_to_string(), mac_mask_to_string());
      |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(((std::__cxx11::basic_string<char>&)args#0), ((std::__cxx11::basic_string<char>&)args#1))'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((*(const std::__cxx11::basic_string<char>*)(& val)))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./fmt/core.h: In instantiation of 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const std::__cxx11::basic_string<char>&]':
./fmt/core.h:1777:29:   required from 'constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::string_type; T = const std::__cxx11::basic_string<char>&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]'
 1777 |   return make_value<Context>(val);
      |          ~~~~~~~~~~~~~~~~~~~^~~~~
./fmt/core.h:1901:77:   required from 'constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char*&, int&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char*, int}]'
 1899 |         data_{detail::make_arg<
      |               ~~~~~~~~~~~~~~~~~                                              
 1900 |             is_packed, Context,
      |             ~~~~~~~~~~~~~~~~~~~                                              
 1901 |             detail::mapped_type_constant<remove_cvref_t<T>, Context>::value>(
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1902 |             FMT_FORWARD(args))...} {
      |             ~~~~~~~~~~~~~~~~~~                                               
./fmt/core.h:1918:31:   required from 'std::string fmt::v9::format(format_string<T ...>, T&& ...) [with T = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char*, int&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char*, int&>]'
 1918 |   return {FMT_FORWARD(args)...};
      |                               ^
log_tools/kismetdb_to_pcap.cc:183:53:   required from here
  183 |                 throw std::runtime_error(fmt::format("Unexpected problem opening output "
      |                                          ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  184 |                             "file '{}': {} (errno {})", path, strerror(errno), errno));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./fmt/core.h:3206:44:   in 'constexpr' expansion of 'fmt::v9::make_format_args<>(args#0, ((char*&)args#1), args#2)'
./fmt/core.h:1735:15: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |               ^~~
./fmt/core.h:1735:46: note: the temporary was destroyed at the end of the full expression 'fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >().fmt::v9::detail::arg_mapper<fmt::v9::basic_format_context<fmt::v9::appender, char> >::map<std::__cxx11::basic_string<char> >((* & val))'
 1735 |   const auto& arg = arg_mapper<Context>().map(FMT_FORWARD(val));
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-format-truncation -Wno-unused-local-typedefs -Wno-unused-function -Wno-infinite-recursion -g -I. -fPIE -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -O3 -DPROTOBUF_USE_DLLS -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -Wnon-virtual-dtor -DNOMINMAX -DKS_STR_ENCODING_NONE    -c tools/kismet_discovery.cc -o tools/kismet_discovery.cc.o
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o tools/kismet_discovery tools/kismet_discovery.cc.o version.c.o -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -rdynamic
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_dump_devices log_tools/kismetdb_dump_devices.cc.o sqlite3_cpp11.cc.o -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -rdynamic
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_to_wiglecsv log_tools/kismetdb_to_wiglecsv.cc.o sqlite3_cpp11.cc.o  -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -rdynamic
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_statistics log_tools/kismetdb_statistics.cc.o sqlite3_cpp11.cc.o  -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -rdynamic
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_clean log_tools/kismetdb_clean.cc.o sqlite3_cpp11.cc.o  -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -rdynamic
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_to_gpx log_tools/kismetdb_to_gpx.cc.o sqlite3_cpp11.cc.o  -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -rdynamic
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_to_kml log_tools/kismetdb_to_kml.cc.o sqlite3_cpp11.cc.o  -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -rdynamic
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_to_pcap log_tools/kismetdb_to_pcap.cc.o sqlite3_cpp11.cc.o  version.c.o -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -lpcap -rdynamic
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet util.cc.o crc32.cc.o macaddr.cc.o uuid.cc.o xxhash.cc.o boost_like_hash.cc.o sqlite3_cpp11.cc.o globalregistry.cc.o eventbus.cc.o packet.cc.o configfile.cc.o battery.cc.o ipctracker_v2.cc.o protobuf_cpp/kismet.pb.cc.o protobuf_cpp/http.pb.cc.o protobuf_cpp/datasource.pb.cc.o protobuf_cpp/linuxbluetooth.pb.cc.o protobuf_cpp/eventbus.pb.cc.o  kis_external.cc.o dlttracker.cc.o antennatracker.cc.o datasourcetracker.cc.o kis_datasource.cc.o datasource_linux_bluetooth.cc.o datasource_rtl433.cc.o datasource_rtlamr.cc.o datasource_rtladsb.cc.o datasource_ti_cc_2540.cc.o datasource_ti_cc_2531.cc.o datasource_ubertooth_one.cc.o datasource_nrf_51822.cc.o datasource_nxp_kw41z.cc.o datasource_nrf_52840.cc.o datasource_rz_killerbee.cc.o datasource_scan.cc.o datasource_bt_geiger.cc.o kis_net_beast_httpd.cc.o kis_httpd_registry.cc.o system_monitor.cc.o base64.cc.o gpstracker.cc.o kis_gps.cc.o gpsnmea_v2.cc.o gpsserial_v3.cc.o gpstcp_v2.cc.o gpsgpsd_v3.cc.o gpsfake.cc.o gpsweb.cc.o gpsmeta.cc.o packetchain.cc.o packet_filter.cc.o class_filter.cc.o trackedelement.cc.o trackedelement_workers.cc.o trackedcomponent.cc.o entrytracker.cc.o trackedlocation.cc.o devicetracker_component.cc.o devicetracker_view.cc.o devicetracker_view_workers.cc.o kis_server_announce.cc.o json_adapter.cc.o plugintracker.cc.o alertracker.cc.o timetracker.cc.o channeltracker2.cc.o devicetracker.cc.o devicetracker_httpd.cc.o kis_dlt.cc.o kis_dlt_ppi.cc.o kis_dlt_radiotap.cc.o kis_dlt_btle_radio.cc.o kaitaistream.cc.o dot11_parsers/dot11_ie.cc.o dot11_parsers/dot11_ie_7_country.cc.o dot11_parsers/dot11_ie_11_qbss.cc.o dot11_parsers/dot11_ie_33_power.cc.o dot11_parsers/dot11_ie_36_supported_channels.cc.o dot11_parsers/dot11_ie_45_ht_cap.cc.o dot11_parsers/dot11_ie_48_rsn.cc.o dot11_parsers/dot11_ie_52_rmm_neighbor.cc.o dot11_parsers/dot11_ie_54_mobility.cc.o dot11_parsers/dot11_ie_55_fastbss.cc.o dot11_parsers/dot11_ie_61_ht_op.cc.o dot11_parsers/dot11_ie_70_rm_capabilities.cc.o dot11_parsers/dot11_ie_113_mesh_config.cc.o dot11_parsers/dot11_ie_133_cisco_ccx.cc.o dot11_parsers/dot11_ie_150_vendor.cc.o dot11_parsers/dot11_ie_150_cisco_powerlevel.cc.o dot11_parsers/dot11_ie_191_vht_cap.cc.o dot11_parsers/dot11_ie_192_vht_op.cc.o dot11_parsers/dot11_ie_127_extended_capabilities.cc.o dot11_parsers/dot11_ie_221_vendor.cc.o dot11_parsers/dot11_ie_221_ms_wps.cc.o dot11_parsers/dot11_ie_221_ms_wmm.cc.o dot11_parsers/dot11_ie_221_dji_droneid.cc.o dot11_parsers/dot11_ie_221_wfa_wpa.cc.o dot11_parsers/dot11_ie_221_cisco_client_mfp.cc.o dot11_parsers/dot11_ie_221_wpa_transition.cc.o dot11_parsers/dot11_ie_221_rsn_pmkid.cc.o dot11_parsers/dot11_ie_221_wfa.cc.o dot11_parsers/dot11_ie_255_ext_tag.cc.o dot11_parsers/dot11_action.cc.o dot11_parsers/dot11_wpa_eap.cc.o dot11_parsers/dot11_p2p_ie.cc.o bluetooth_parsers/btle.cc.o  phy_80211.cc.o phy_80211_components.cc.o phy_80211_dissectors.cc.o phy_sensor.cc.o phy_meter.cc.o phy_adsb.cc.o phy_zwave.cc.o phy_bluetooth.cc.o phy_uav_drone.cc.o phy_nrf_mousejack.cc.o phy_btle.cc.o phy_802154.cc.o phy_80211_ssidtracker.cc.o phy_radiation.cc.o kis_dissector_ipdata.cc.o manuf.cc.o bluetooth_ids.cc.o adsb_icao.cc.o logtracker.cc.o kis_ppilogfile.cc.o kis_databaselogfile.cc.o kis_pcapnglogfile.cc.o kis_wiglecsvlogfile.cc.o messagebus_restclient.cc.o streamtracker.cc.o pcapng_stream_futurebuf.cc.o kis_database.cc.o kismet_server.cc.o  version.c.o -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -lpcap -lpthread -lprotobuf -labsl_log_internal_check_op -labsl_leak_check -labsl_die_if_null -labsl_log_internal_conditions -labsl_log_internal_message -labsl_examine_stack -labsl_log_internal_format -labsl_log_internal_proto -labsl_log_internal_nullguard -labsl_log_internal_log_sink_set -labsl_log_sink -labsl_log_entry -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_reflection -labsl_flags_private_handle_accessor -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_program_name -labsl_log_initialize -labsl_log_globals -labsl_vlog_config_internal -labsl_log_internal_fnmatch -labsl_log_internal_globals -labsl_raw_hash_set -labsl_hash -labsl_city -labsl_low_level_hash -labsl_hashtablez_sampler -labsl_statusor -labsl_status -labsl_cord -labsl_cordz_info -labsl_cord_internal -labsl_cordz_functions -labsl_exponential_biased -labsl_cordz_handle -labsl_crc_cord_state -labsl_crc32c -labsl_crc_internal -labsl_crc_cpu_detect -labsl_bad_optional_access -labsl_strerror -labsl_str_format_internal -labsl_synchronization -labsl_graphcycles_internal -labsl_kernel_timeout_internal -labsl_stacktrace -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal -labsl_demangle_rust -labsl_decode_rust_punycode -labsl_utf8_for_code_point -labsl_malloc_internal -labsl_time -labsl_civil_time -labsl_time_zone -labsl_bad_variant_access -lutf8_validity -lutf8_range -labsl_strings -labsl_strings_internal -labsl_string_view -labsl_base -lrt -labsl_spinlock_wait -labsl_int128 -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity  -lssl -lcrypto -rdynamic
>>> kismet: Entering fakeroot...
make[1]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1'
(cd capture_linux_wifi && make)
(cd capture_linux_bluetooth && make)
(cd capture_nrf_51822 && make)
(cd capture_nxp_kw41z && make)
(cd capture_nrf_52840 && make)
cc -MM -MP -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -MT version.c.o version.c -MF version.c.d
make[2]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nrf_51822'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nrf_51822'
make[2]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_linux_bluetooth'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_linux_bluetooth'
make[2]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nxp_kw41z'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nxp_kw41z'
make[2]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nrf_52840'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_nrf_52840'
make[2]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_linux_wifi'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1/capture_linux_wifi'
cc -Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wno-unknown-warning-option -Wno-format-truncation -Wno-unused-function -g -I. -fPIE  -I/usr/include/libnl3  -pthread     -c version.c -o version.c.o
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o log_tools/kismetdb_to_pcap log_tools/kismetdb_to_pcap.cc.o sqlite3_cpp11.cc.o  version.c.o -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -lpcap -rdynamic
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o tools/kismet_discovery tools/kismet_discovery.cc.o version.c.o -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -rdynamic
c++ -std=gnu++17 -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -rdynamic -o kismet util.cc.o crc32.cc.o macaddr.cc.o uuid.cc.o xxhash.cc.o boost_like_hash.cc.o sqlite3_cpp11.cc.o globalregistry.cc.o eventbus.cc.o packet.cc.o configfile.cc.o battery.cc.o ipctracker_v2.cc.o protobuf_cpp/kismet.pb.cc.o protobuf_cpp/http.pb.cc.o protobuf_cpp/datasource.pb.cc.o protobuf_cpp/linuxbluetooth.pb.cc.o protobuf_cpp/eventbus.pb.cc.o  kis_external.cc.o dlttracker.cc.o antennatracker.cc.o datasourcetracker.cc.o kis_datasource.cc.o datasource_linux_bluetooth.cc.o datasource_rtl433.cc.o datasource_rtlamr.cc.o datasource_rtladsb.cc.o datasource_ti_cc_2540.cc.o datasource_ti_cc_2531.cc.o datasource_ubertooth_one.cc.o datasource_nrf_51822.cc.o datasource_nxp_kw41z.cc.o datasource_nrf_52840.cc.o datasource_rz_killerbee.cc.o datasource_scan.cc.o datasource_bt_geiger.cc.o kis_net_beast_httpd.cc.o kis_httpd_registry.cc.o system_monitor.cc.o base64.cc.o gpstracker.cc.o kis_gps.cc.o gpsnmea_v2.cc.o gpsserial_v3.cc.o gpstcp_v2.cc.o gpsgpsd_v3.cc.o gpsfake.cc.o gpsweb.cc.o gpsmeta.cc.o packetchain.cc.o packet_filter.cc.o class_filter.cc.o trackedelement.cc.o trackedelement_workers.cc.o trackedcomponent.cc.o entrytracker.cc.o trackedlocation.cc.o devicetracker_component.cc.o devicetracker_view.cc.o devicetracker_view_workers.cc.o kis_server_announce.cc.o json_adapter.cc.o plugintracker.cc.o alertracker.cc.o timetracker.cc.o channeltracker2.cc.o devicetracker.cc.o devicetracker_httpd.cc.o kis_dlt.cc.o kis_dlt_ppi.cc.o kis_dlt_radiotap.cc.o kis_dlt_btle_radio.cc.o kaitaistream.cc.o dot11_parsers/dot11_ie.cc.o dot11_parsers/dot11_ie_7_country.cc.o dot11_parsers/dot11_ie_11_qbss.cc.o dot11_parsers/dot11_ie_33_power.cc.o dot11_parsers/dot11_ie_36_supported_channels.cc.o dot11_parsers/dot11_ie_45_ht_cap.cc.o dot11_parsers/dot11_ie_48_rsn.cc.o dot11_parsers/dot11_ie_52_rmm_neighbor.cc.o dot11_parsers/dot11_ie_54_mobility.cc.o dot11_parsers/dot11_ie_55_fastbss.cc.o dot11_parsers/dot11_ie_61_ht_op.cc.o dot11_parsers/dot11_ie_70_rm_capabilities.cc.o dot11_parsers/dot11_ie_113_mesh_config.cc.o dot11_parsers/dot11_ie_133_cisco_ccx.cc.o dot11_parsers/dot11_ie_150_vendor.cc.o dot11_parsers/dot11_ie_150_cisco_powerlevel.cc.o dot11_parsers/dot11_ie_191_vht_cap.cc.o dot11_parsers/dot11_ie_192_vht_op.cc.o dot11_parsers/dot11_ie_127_extended_capabilities.cc.o dot11_parsers/dot11_ie_221_vendor.cc.o dot11_parsers/dot11_ie_221_ms_wps.cc.o dot11_parsers/dot11_ie_221_ms_wmm.cc.o dot11_parsers/dot11_ie_221_dji_droneid.cc.o dot11_parsers/dot11_ie_221_wfa_wpa.cc.o dot11_parsers/dot11_ie_221_cisco_client_mfp.cc.o dot11_parsers/dot11_ie_221_wpa_transition.cc.o dot11_parsers/dot11_ie_221_rsn_pmkid.cc.o dot11_parsers/dot11_ie_221_wfa.cc.o dot11_parsers/dot11_ie_255_ext_tag.cc.o dot11_parsers/dot11_action.cc.o dot11_parsers/dot11_wpa_eap.cc.o dot11_parsers/dot11_p2p_ie.cc.o bluetooth_parsers/btle.cc.o  phy_80211.cc.o phy_80211_components.cc.o phy_80211_dissectors.cc.o phy_sensor.cc.o phy_meter.cc.o phy_adsb.cc.o phy_zwave.cc.o phy_bluetooth.cc.o phy_uav_drone.cc.o phy_nrf_mousejack.cc.o phy_btle.cc.o phy_802154.cc.o phy_80211_ssidtracker.cc.o phy_radiation.cc.o kis_dissector_ipdata.cc.o manuf.cc.o bluetooth_ids.cc.o adsb_icao.cc.o logtracker.cc.o kis_ppilogfile.cc.o kis_databaselogfile.cc.o kis_pcapnglogfile.cc.o kis_wiglecsvlogfile.cc.o messagebus_restclient.cc.o streamtracker.cc.o pcapng_stream_futurebuf.cc.o kis_database.cc.o kismet_server.cc.o  version.c.o -ldl -lz -latomic -lpcre2-8 -lsqlite3 -lstdc++ -lpcap -lpthread -lprotobuf -labsl_log_internal_check_op -labsl_leak_check -labsl_die_if_null -labsl_log_internal_conditions -labsl_log_internal_message -labsl_examine_stack -labsl_log_internal_format -labsl_log_internal_proto -labsl_log_internal_nullguard -labsl_log_internal_log_sink_set -labsl_log_sink -labsl_log_entry -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_reflection -labsl_flags_private_handle_accessor -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_program_name -labsl_log_initialize -labsl_log_globals -labsl_vlog_config_internal -labsl_log_internal_fnmatch -labsl_log_internal_globals -labsl_raw_hash_set -labsl_hash -labsl_city -labsl_low_level_hash -labsl_hashtablez_sampler -labsl_statusor -labsl_status -labsl_cord -labsl_cordz_info -labsl_cord_internal -labsl_cordz_functions -labsl_exponential_biased -labsl_cordz_handle -labsl_crc_cord_state -labsl_crc32c -labsl_crc_internal -labsl_crc_cpu_detect -labsl_bad_optional_access -labsl_strerror -labsl_str_format_internal -labsl_synchronization -labsl_graphcycles_internal -labsl_kernel_timeout_internal -labsl_stacktrace -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal -labsl_demangle_rust -labsl_decode_rust_punycode -labsl_utf8_for_code_point -labsl_malloc_internal -labsl_time -labsl_civil_time -labsl_time_zone -labsl_bad_variant_access -lutf8_validity -lutf8_range -labsl_strings -labsl_strings_internal -labsl_string_view -labsl_base -lrt -labsl_spinlock_wait -labsl_int128 -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity  -lssl -lcrypto -rdynamic
mkdir -p /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet
mkdir -p /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin
/usr/bin/install -c -o "root" -g "root" -m 555 kismet /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/kismet; 
# Install the alias script
/usr/bin/install -c -o "root" -g "root" -m 555 kismet_server /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/kismet_server; 
# Install the compiled log tools
/usr/bin/install -c -o "root" -g "root" -m 555 log_tools/kismetdb_strip_packets /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename log_tools/kismetdb_strip_packets`;
/usr/bin/install -c -o "root" -g "root" -m 555 log_tools/kismetdb_dump_devices /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename log_tools/kismetdb_dump_devices`;
/usr/bin/install -c -o "root" -g "root" -m 555 log_tools/kismetdb_to_wiglecsv /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename log_tools/kismetdb_to_wiglecsv`;
/usr/bin/install -c -o "root" -g "root" -m 555 log_tools/kismetdb_statistics /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename log_tools/kismetdb_statistics`;
/usr/bin/install -c -o "root" -g "root" -m 555 log_tools/kismetdb_to_kml /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename log_tools/kismetdb_to_kml`;
/usr/bin/install -c -o "root" -g "root" -m 555 log_tools/kismetdb_to_gpx /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename log_tools/kismetdb_to_gpx`;
/usr/bin/install -c -o "root" -g "root" -m 555 log_tools/kismetdb_clean /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename log_tools/kismetdb_clean`;
/usr/bin/install -c -o "root" -g "root" -m 555 log_tools/kismetdb_to_pcap /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename log_tools/kismetdb_to_pcap`;
# Install the other tools
/usr/bin/install -c -o "root" -g "root" -m 555 tools/kismet_discovery /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/`basename tools/kismet_discovery`;
mkdir -p /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin
mkdir -p /home/buildozer/aports/testing/kismet/pkg/kismet/usr/lib/pkgconfig
/usr/bin/install -c -o "root" -g "root" -m 644 packaging/kismet.pc /home/buildozer/aports/testing/kismet/pkg/kismet/usr/lib/pkgconfig/kismet.pc
mkdir -p /home/buildozer/aports/testing/kismet/pkg/kismet/usr/share/kismet/httpd/
cp -r http_data/* /home/buildozer/aports/testing/kismet/pkg/kismet/usr/share/kismet/httpd/
cp conf/kismet_manuf.txt.gz /home/buildozer/aports/testing/kismet/pkg/kismet/usr/share/kismet//kismet_manuf.txt.gz
cp conf/kismet_adsb_icao.txt.gz /home/buildozer/aports/testing/kismet/pkg/kismet/usr/share/kismet//kismet_adsb_icao.txt.gz
make[1]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1'
make[1]: Entering directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1'
install -o root -g root -m 644 conf/kismet.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet.conf
install -o root -g root -m 644 conf/kismet_httpd.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet_httpd.conf
install -o root -g root -m 644 conf/kismet_alerts.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet_alerts.conf
install -o root -g root -m 644 conf/kismet_memory.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet_memory.conf
install -o root -g root -m 644 conf/kismet_logging.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet_logging.conf
install -o root -g root -m 644 conf/kismet_filter.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet_filter.conf
install -o root -g root -m 644 conf/kismet_uav.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet_uav.conf
install -o root -g root -m 644 conf/kismet_80211.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet_80211.conf
install -o root -g root -m 644 conf/kismet_wardrive.conf /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet_wardrive.conf


Existing config files have not been replaced; if the Kismet 
configuration files have changed, you will need to manually 
reconcile the differences in the config files!
You can replace all config files with: 
    make forceconfigs

You can simplify future configuration changes by using the 
kismet_site.conf config file, for more info see the docs at:
https://www.kismetwireless.net/docs/readme/config_files/


make[1]: Leaving directory '/home/buildozer/aports/testing/kismet/src/kismet-2023-07-R1'


Installed kismet into /home/buildozer/aports/testing/kismet/pkg/kismet/usr/bin/.
If you have not done so already, read the README file and the FAQ file.  Additional
documentation is in the docs/ directory.  You MUST edit /home/buildozer/aports/testing/kismet/pkg/kismet/etc/kismet/kismet.conf 
and configure Kismet for your system, or it will NOT run properly!

Kismet has NOT been installed suid-root.  This means you will need to start 
it as root.  If you add your user to the kismet group and install 
Kismet with 'make suidinstall', users in that group will be able to 
run Kismet directly.

READ THE KISMET DOCUMENTATION ABOUT THE KISMET SECURITY MODEL TO
DECIDE IF YOU WANT TO INSTALL IT SUID-ROOT

It is generally *MORE SECURE* to install Kismet with the suid-root 
option.

If you have installed Kismet in the past, you may need to UPDATE YOUR CONFIG
FILES or Kismet may not work properly!  You can manually reconcile differences
or you can replace the previously installed config files entirely by running
make forceconfigs
>>> kismet-logtools*: Running split function logtools...
'usr/bin/kismetdb_clean' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-logtools/usr/bin/kismetdb_clean'
'usr/bin/kismetdb_dump_devices' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-logtools/usr/bin/kismetdb_dump_devices'
'usr/bin/kismetdb_statistics' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-logtools/usr/bin/kismetdb_statistics'
'usr/bin/kismetdb_strip_packets' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-logtools/usr/bin/kismetdb_strip_packets'
'usr/bin/kismetdb_to_gpx' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-logtools/usr/bin/kismetdb_to_gpx'
'usr/bin/kismetdb_to_kml' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-logtools/usr/bin/kismetdb_to_kml'
'usr/bin/kismetdb_to_pcap' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-logtools/usr/bin/kismetdb_to_pcap'
'usr/bin/kismetdb_to_wiglecsv' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-logtools/usr/bin/kismetdb_to_wiglecsv'
>>> kismet-logtools*: Preparing subpackage kismet-logtools...
>>> kismet-logtools*: Stripping binaries
>>> kismet-logtools*: Running postcheck for kismet-logtools
>>> kismet-linux-bluetooth*: Running split function linux_bluetooth...
'usr/bin/kismet_cap_linux_bluetooth' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-linux-bluetooth/usr/bin/kismet_cap_linux_bluetooth'
>>> kismet-linux-bluetooth*: Preparing subpackage kismet-linux-bluetooth...
>>> kismet-linux-bluetooth*: Stripping binaries
>>> kismet-linux-bluetooth*: Running postcheck for kismet-linux-bluetooth
>>> kismet-linux-wifi*: Running split function linux_wifi...
'usr/bin/kismet_cap_linux_wifi' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-linux-wifi/usr/bin/kismet_cap_linux_wifi'
>>> kismet-linux-wifi*: Preparing subpackage kismet-linux-wifi...
>>> kismet-linux-wifi*: Stripping binaries
>>> kismet-linux-wifi*: Running postcheck for kismet-linux-wifi
>>> kismet-nrf-51822*: Running split function nrf_51822...
'usr/bin/kismet_cap_nrf_51822' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-nrf-51822/usr/bin/kismet_cap_nrf_51822'
>>> kismet-nrf-51822*: Preparing subpackage kismet-nrf-51822...
>>> kismet-nrf-51822*: Stripping binaries
>>> kismet-nrf-51822*: Running postcheck for kismet-nrf-51822
>>> kismet-nxp-kw41z*: Running split function nxp_kw41z...
'usr/bin/kismet_cap_nxp_kw41z' -> '/home/buildozer/aports/testing/kismet/pkg/kismet-nxp-kw41z/usr/bin/kismet_cap_nxp_kw41z'
>>> kismet-nxp-kw41z*: Preparing subpackage kismet-nxp-kw41z...
>>> kismet-nxp-kw41z*: Stripping binaries
>>> kismet-nxp-kw41z*: Running postcheck for kismet-nxp-kw41z
>>> kismet*: Running postcheck for kismet
>>> kismet*: Preparing package kismet...
>>> kismet*: Stripping binaries
>>> kismet-linux-bluetooth*: Scanning shared objects
>>> kismet-linux-wifi*: Scanning shared objects
>>> kismet-logtools*: Scanning shared objects
>>> kismet-nrf-51822*: Scanning shared objects
>>> kismet-nxp-kw41z*: Scanning shared objects
>>> kismet*: Scanning shared objects
>>> kismet-linux-bluetooth*: Tracing dependencies...
	kismet=0.202307.1-r5
	so:libc.musl-aarch64.so.1
	so:libprotobuf-c.so.1
>>> kismet-linux-bluetooth*: Package size: 130.6 KB
>>> kismet-linux-bluetooth*: Compressing data...
>>> kismet-linux-bluetooth*: Create checksum...
>>> kismet-linux-bluetooth*: Create kismet-linux-bluetooth-0.202307.1-r5.apk
>>> kismet-linux-wifi*: Tracing dependencies...
	kismet=0.202307.1-r5
	so:libc.musl-aarch64.so.1
	so:libnl-3.so.200
	so:libnl-genl-3.so.200
	so:libpcap.so.1
	so:libprotobuf-c.so.1
>>> kismet-linux-wifi*: Package size: 203.0 KB
>>> kismet-linux-wifi*: Compressing data...
>>> kismet-linux-wifi*: Create checksum...
>>> kismet-linux-wifi*: Create kismet-linux-wifi-0.202307.1-r5.apk
>>> kismet-logtools*: Tracing dependencies...
	so:libc.musl-aarch64.so.1
	so:libgcc_s.so.1
	so:libpcap.so.1
	so:libpcre2-8.so.0
	so:libsqlite3.so.0
	so:libstdc++.so.6
>>> kismet-logtools*: Package size: 2.6 MB
>>> kismet-logtools*: Compressing data...
>>> kismet-logtools*: Create checksum...
>>> kismet-logtools*: Create kismet-logtools-0.202307.1-r5.apk
>>> kismet-nrf-51822*: Tracing dependencies...
	kismet=0.202307.1-r5
	so:libc.musl-aarch64.so.1
	so:libprotobuf-c.so.1
>>> kismet-nrf-51822*: Package size: 130.6 KB
>>> kismet-nrf-51822*: Compressing data...
>>> kismet-nrf-51822*: Create checksum...
>>> kismet-nrf-51822*: Create kismet-nrf-51822-0.202307.1-r5.apk
>>> kismet-nxp-kw41z*: Tracing dependencies...
	kismet=0.202307.1-r5
	so:libc.musl-aarch64.so.1
	so:libprotobuf-c.so.1
>>> kismet-nxp-kw41z*: Package size: 130.6 KB
>>> kismet-nxp-kw41z*: Compressing data...
>>> kismet-nxp-kw41z*: Create checksum...
>>> kismet-nxp-kw41z*: Create kismet-nxp-kw41z-0.202307.1-r5.apk
>>> kismet*: Tracing dependencies...
	pkgconfig
	so:libabsl_log_internal_check_op.so.2407.0.0
	so:libabsl_log_internal_message.so.2407.0.0
	so:libc.musl-aarch64.so.1
	so:libcrypto.so.3
	so:libgcc_s.so.1
	so:libpcap.so.1
	so:libpcre2-8.so.0
	so:libprotobuf-c.so.1
	so:libprotobuf.so.25
	so:libsqlite3.so.0
	so:libstdc++.so.6
	so:libz.so.1
>>> kismet*: Package size: 21.7 MB
>>> kismet*: Compressing data...
>>> kismet*: Create checksum...
>>> kismet*: Create kismet-0.202307.1-r5.apk
>>> kismet: Build complete at Sun, 13 Apr 2025 16:20:50 +0000 elapsed time 0h 4m 53s
>>> kismet: Cleaning up srcdir
>>> kismet: Cleaning up pkgdir
>>> kismet: Uninstalling dependencies...
(1/133) Purging .makedepends-kismet (20250413.161558)
(2/133) Purging libnl3-dev (3.11.0-r0)
(3/133) Purging libnl3-cli (3.11.0-r0)
(4/133) Purging libnl3 (3.11.0-r0)
(5/133) Purging libpcap-dev (1.10.5-r0)
(6/133) Purging libpcap (1.10.5-r0)
(7/133) Purging openssl-dev (3.5.0-r0)
(8/133) Purging pcre2-dev (10.43-r1)
(9/133) Purging libedit-dev (20250104.3.1-r0)
(10/133) Purging bsd-compat-headers (0.7.2-r6)
(11/133) Purging ncurses-dev (6.5_p20250216-r0)
(12/133) Purging libncurses++ (6.5_p20250216-r0)
(13/133) Purging libpanelw (6.5_p20250216-r0)
(14/133) Purging libpcre2-16 (10.43-r1)
(15/133) Purging libpcre2-32 (10.43-r1)
(16/133) Purging protobuf-c-dev (1.5.1-r1)
(17/133) Purging protobuf-c-compiler (1.5.1-r1)
(18/133) Purging protobuf-c (1.5.1-r1)
(19/133) Purging protobuf-dev (25.6-r0)
(20/133) Purging protoc (25.6-r0)
(21/133) Purging libprotobuf-lite (25.6-r0)
(22/133) Purging libprotoc (25.6-r0)
(23/133) Purging sqlite-dev (3.49.1-r0)
(24/133) Purging sqlite (3.49.1-r0)
(25/133) Purging sqlite-libs (3.49.1-r0)
(26/133) Purging zlib-dev (1.3.1-r2)
(27/133) Purging abseil-cpp-dev (20240722.1-r1)
(28/133) Purging linux-headers (6.12.6-r0)
(29/133) Purging abseil-cpp-atomic-hook-test-helper (20240722.1-r1)
(30/133) Purging abseil-cpp-bad-any-cast-impl (20240722.1-r1)
(31/133) Purging abseil-cpp-bad-optional-access (20240722.1-r1)
(32/133) Purging abseil-cpp-bad-variant-access (20240722.1-r1)
(33/133) Purging abseil-cpp-civil-time (20240722.1-r1)
(34/133) Purging abseil-cpp-cordz-sample-token (20240722.1-r1)
(35/133) Purging abseil-cpp-crc-cpu-detect (20240722.1-r1)
(36/133) Purging abseil-cpp-demangle-internal (20240722.1-r1)
(37/133) Purging abseil-cpp-exception-safety-testing (20240722.1-r1)
(38/133) Purging abseil-cpp-failure-signal-handler (20240722.1-r1)
(39/133) Purging abseil-cpp-flags-parse (20240722.1-r1)
(40/133) Purging abseil-cpp-flags-usage-internal (20240722.1-r1)
(41/133) Purging abseil-cpp-flags-usage (20240722.1-r1)
(42/133) Purging abseil-cpp-graphcycles-internal (20240722.1-r1)
(43/133) Purging abseil-cpp-hash-generator-testing (20240722.1-r1)
(44/133) Purging abseil-cpp-hashtablez-sampler (20240722.1-r1)
(45/133) Purging abseil-cpp-leak-check (20240722.1-r1)
(46/133) Purging abseil-cpp-log-entry (20240722.1-r1)
(47/133) Purging abseil-cpp-log-flags (20240722.1-r1)
(48/133) Purging abseil-cpp-log-internal-test-actions (20240722.1-r1)
(49/133) Purging abseil-cpp-log-internal-test-matchers (20240722.1-r1)
(50/133) Purging abseil-cpp-per-thread-sem-test-common (20240722.1-r1)
(51/133) Purging abseil-cpp-periodic-sampler (20240722.1-r1)
(52/133) Purging abseil-cpp-pow10-helper (20240722.1-r1)
(53/133) Purging abseil-cpp-random-distributions (20240722.1-r1)
(54/133) Purging abseil-cpp-random-internal-distribution-test-util (20240722.1-r1)
(55/133) Purging abseil-cpp-random-seed-sequences (20240722.1-r1)
(56/133) Purging abseil-cpp-scoped-mock-log (20240722.1-r1)
(57/133) Purging abseil-cpp-scoped-set-env (20240722.1-r1)
(58/133) Purging abseil-cpp-spinlock-test-common (20240722.1-r1)
(59/133) Purging abseil-cpp-stack-consumption (20240722.1-r1)
(60/133) Purging abseil-cpp-string-view (20240722.1-r1)
(61/133) Purging abseil-cpp-test-instance-tracker (20240722.1-r1)
(62/133) Purging abseil-cpp-time-internal-test-util (20240722.1-r1)
(63/133) Purging abseil-cpp-vlog-config-internal (20240722.1-r1)
(64/133) Purging abseil-cpp (20240722.1-r1)
(65/133) Purging abseil-cpp-flags-internal (20240722.1-r1)
(66/133) Purging abseil-cpp-flags-marshalling (20240722.1-r1)
(67/133) Purging abseil-cpp-flags-reflection (20240722.1-r1)
(68/133) Purging abseil-cpp-log-internal-fnmatch (20240722.1-r1)
(69/133) Purging abseil-cpp-log-internal-test-helpers (20240722.1-r1)
(70/133) Purging abseil-cpp-log-severity (20240722.1-r1)
(71/133) Purging abseil-cpp-random-internal-pool-urbg (20240722.1-r1)
(72/133) Purging abseil-cpp-random-internal-randen (20240722.1-r1)
(73/133) Purging abseil-cpp-random-internal-randen-hwaes (20240722.1-r1)
(74/133) Purging abseil-cpp-random-internal-randen-hwaes-impl (20240722.1-r1)
(75/133) Purging abseil-cpp-random-internal-randen-slow (20240722.1-r1)
(76/133) Purging abseil-cpp-random-internal-seed-material (20240722.1-r1)
(77/133) Purging abseil-cpp-random-seed-gen-exception (20240722.1-r1)
(78/133) Purging gmock (1.16.0-r0)
(79/133) Purging gtest (1.16.0-r0)
(80/133) Purging libformw (6.5_p20250216-r0)
(81/133) Purging libmenuw (6.5_p20250216-r0)
(82/133) Purging libprotobuf (25.6-r0)
(83/133) Purging abseil-cpp-log-internal-conditions (20240722.1-r1)
(84/133) Purging abseil-cpp-statusor (20240722.1-r1)
(85/133) Purging abseil-cpp-status (20240722.1-r1)
(86/133) Purging abseil-cpp-cord (20240722.1-r1)
(87/133) Purging abseil-cpp-cordz-info (20240722.1-r1)
(88/133) Purging abseil-cpp-cordz-handle (20240722.1-r1)
(89/133) Purging abseil-cpp-die-if-null (20240722.1-r1)
(90/133) Purging abseil-cpp-log-internal-message (20240722.1-r1)
(91/133) Purging abseil-cpp-log-internal-log-sink-set (20240722.1-r1)
(92/133) Purging abseil-cpp-flags-config (20240722.1-r1)
(93/133) Purging abseil-cpp-flags-program-name (20240722.1-r1)
(94/133) Purging abseil-cpp-synchronization (20240722.1-r1)
(95/133) Purging abseil-cpp-malloc-internal (20240722.1-r1)
(96/133) Purging abseil-cpp-base (20240722.1-r1)
(97/133) Purging abseil-cpp-raw-hash-set (20240722.1-r1)
(98/133) Purging abseil-cpp-log-globals (20240722.1-r1)
(99/133) Purging abseil-cpp-hash (20240722.1-r1)
(100/133) Purging abseil-cpp-city (20240722.1-r1)
(101/133) Purging abseil-cpp-cord-internal (20240722.1-r1)
(102/133) Purging abseil-cpp-cordz-functions (20240722.1-r1)
(103/133) Purging abseil-cpp-crc-cord-state (20240722.1-r1)
(104/133) Purging abseil-cpp-crc32c (20240722.1-r1)
(105/133) Purging abseil-cpp-crc-internal (20240722.1-r1)
(106/133) Purging abseil-cpp-examine-stack (20240722.1-r1)
(107/133) Purging abseil-cpp-stacktrace (20240722.1-r1)
(108/133) Purging abseil-cpp-debugging-internal (20240722.1-r1)
(109/133) Purging abseil-cpp-exponential-biased (20240722.1-r1)
(110/133) Purging abseil-cpp-flags-commandlineflag (20240722.1-r1)
(111/133) Purging abseil-cpp-flags-commandlineflag-internal (20240722.1-r1)
(112/133) Purging abseil-cpp-flags-private-handle-accessor (20240722.1-r1)
(113/133) Purging abseil-cpp-log-internal-format (20240722.1-r1)
(114/133) Purging abseil-cpp-str-format-internal (20240722.1-r1)
(115/133) Purging abseil-cpp-int128 (20240722.1-r1)
(116/133) Purging abseil-cpp-kernel-timeout-internal (20240722.1-r1)
(117/133) Purging abseil-cpp-log-initialize (20240722.1-r1)
(118/133) Purging abseil-cpp-log-internal-check-op (20240722.1-r1)
(119/133) Purging abseil-cpp-log-internal-globals (20240722.1-r1)
(120/133) Purging abseil-cpp-log-internal-nullguard (20240722.1-r1)
(121/133) Purging abseil-cpp-log-internal-proto (20240722.1-r1)
(122/133) Purging abseil-cpp-log-sink (20240722.1-r1)
(123/133) Purging abseil-cpp-low-level-hash (20240722.1-r1)
(124/133) Purging abseil-cpp-random-internal-platform (20240722.1-r1)
(125/133) Purging abseil-cpp-time (20240722.1-r1)
(126/133) Purging abseil-cpp-strings (20240722.1-r1)
(127/133) Purging abseil-cpp-strings-internal (20240722.1-r1)
(128/133) Purging abseil-cpp-raw-logging-internal (20240722.1-r1)
(129/133) Purging abseil-cpp-spinlock-wait (20240722.1-r1)
(130/133) Purging abseil-cpp-strerror (20240722.1-r1)
(131/133) Purging abseil-cpp-symbolize (20240722.1-r1)
(132/133) Purging abseil-cpp-throw-delegate (20240722.1-r1)
(133/133) Purging abseil-cpp-time-zone (20240722.1-r1)
Executing busybox-1.37.0-r16.trigger
OK: 399 MiB in 108 packages
>>> kismet: Updating the testing/aarch64 repository index...
>>> kismet: Signing the index...