ARMmbed / ble-x-nucleo-idb0xa1

port of BLE_API to ST BLE shield
14 stars 5 forks source link

Error compiling #37

Open FabianInostroza opened 3 years ago

FabianInostroza commented 3 years ago

Hi,

I'm trying to use this library on a custom target using STM32F427 and running mbed-os-5.15, I did everything the documentation says, that is adding the following to my target overrides:

            "target.components_add": ["BlueNRG_MS"],
            "target.features_add": ["BLE"],
            "target.extra_labels_add": ["CORDIO", "CORDIO_BLUENRG"],
            "target.macros_add": [
                      "BLUENRG_PIN_SPI_MOSI=PC_3",
                      "BLUENRG_PIN_SPI_MISO=PC_2",
                      "BLUENRG_PIN_SPI_nCS=PB_15",
                      "BLUENRG_PIN_SPI_RESET=PE_12",
                      "BLUENRG_PIN_SPI_IRQ=PD_10",
                      "BLUENRG_PIN_SPI_SCK=PD_3"]

But compilation fails with the following errors:

./ble-x-nucleo-idb0xa1/bluenrg/bluenrg-hci/ble_link_layer.h:82:25: error: expected identifier before '(' token
   82 | #define ADV_IND         (0x00)
      |                         ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:197:9: note: in expansion of macro 'ADV_IND'
  197 |         ADV_IND = 0x00,
      |         ^~~~~~~
./ble-x-nucleo-idb0xa1/bluenrg/bluenrg-hci/ble_link_layer.h:82:25: error: expected '}' before '(' token
   82 | #define ADV_IND         (0x00)
      |                         ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:197:9: note: in expansion of macro 'ADV_IND'
  197 |         ADV_IND = 0x00,
      |         ^~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:151:15: note: to match this '{'
  151 |     enum type {
      |               ^
In file included from ./ble-x-nucleo-idb0xa1/bluenrg/bluenrg-hci/ble_hci.h:26,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/platform/btle.h:29,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:43,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./ble-x-nucleo-idb0xa1/bluenrg/bluenrg-hci/ble_link_layer.h:82:26: error: expected unqualified-id before numeric constant
   82 | #define ADV_IND         (0x00)
      |                          ^~~~
./ble-x-nucleo-idb0xa1/bluenrg/bluenrg-hci/ble_link_layer.h:82:26: note: in definition of macro 'ADV_IND'
   82 | #define ADV_IND         (0x00)
      |                          ^~~~
./ble-x-nucleo-idb0xa1/bluenrg/bluenrg-hci/ble_link_layer.h:82:26: error: expected ')' before numeric constant
   82 | #define ADV_IND         (0x00)
      |                         ~^~~~
./ble-x-nucleo-idb0xa1/bluenrg/bluenrg-hci/ble_link_layer.h:82:26: note: in definition of macro 'ADV_IND'
   82 | #define ADV_IND         (0x00)
      |                          ^~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:211:28: error: expected ')' before 'value'
  211 |     advertising_type_t(type value) : SafeEnum(value)
      |                       ~    ^~~~~~
      |                            )
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:219:44: error: expected template-name before '<' token
  219 | struct advertising_data_status_t : SafeEnum<advertising_data_status_t, uint8_t> {
      |                                            ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:219:44: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:219:44: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:334:5: error: return type 'struct advertising_data_status_t' is incomplete
  334 |     {
      |     ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h: In member function 'void advertising_event_t::data_status() const':
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:335:55: error: invalid use of incomplete type 'struct advertising_data_status_t'
  335 |         return static_cast<advertising_data_status_t::type>(
      |                                                       ^~~~
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:219:8: note: forward declaration of 'struct advertising_data_status_t'
  219 | struct advertising_data_status_t : SafeEnum<advertising_data_status_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h: In member function 'bool advertising_event_t::complete() const':
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:346:60: error: incomplete type 'advertising_data_status_t' used in nested name specifier
  346 |         return data_status() == advertising_data_status_t::COMPLETE;
      |                                                            ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h: In member function 'bool advertising_event_t::more_data_to_come() const':
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:355:60: error: incomplete type 'advertising_data_status_t' used in nested name specifier
  355 |         return data_status() == advertising_data_status_t::INCOMPLETE_MORE_DATA;
      |                                                            ^~~~~~~~~~~~~~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h: In member function 'bool advertising_event_t::truncated() const':
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:364:60: error: incomplete type 'advertising_data_status_t' used in nested name specifier
  364 |         return data_status() == advertising_data_status_t::INCOMPLETE_DATA_TRUNCATED;
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h: At global scope:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:394:46: error: expected template-name before '<' token
  394 | struct advertising_filter_policy_t : SafeEnum<advertising_filter_policy_t, uint8_t> {
      |                                              ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:394:46: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:394:46: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:436:43: error: expected template-name before '<' token
  436 | struct scanning_filter_policy_t : SafeEnum<scanning_filter_policy_t, uint8_t> {
      |                                           ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:436:43: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:436:43: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:486:44: error: expected template-name before '<' token
  486 | struct initiator_filter_policy_t : SafeEnum<initiator_filter_policy_t, uint8_t> {
      |                                            ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:486:44: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:486:44: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:514:38: error: expected template-name before '<' token
  514 | struct duplicates_filter_t : SafeEnum<duplicates_filter_t, uint8_t> {
      |                                      ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:514:38: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:514:38: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:37: error: expected template-name before '<' token
  546 | struct own_address_type_t : SafeEnum<own_address_type_t, uint8_t> {
      |                                     ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:37: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:37: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:588:45: error: expected template-name before '<' token
  588 | struct target_peer_address_type_t : SafeEnum<target_peer_address_type_t, uint8_t> {
      |                                             ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:588:45: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:588:45: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:607:35: error: expected template-name before '<' token
  607 | struct clock_accuracy_t : SafeEnum<clock_accuracy_t, uint8_t> {
      |                                   ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:607:35: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:607:35: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:707:36: error: expected template-name before '<' token
  707 | struct connection_role_t : SafeEnum<connection_role_t, uint8_t> {
      |                                    ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:707:36: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:707:36: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:756:47: error: expected template-name before '<' token
  756 | struct local_disconnection_reason_t : SafeEnum<local_disconnection_reason_t, uint8_t> {
      |                                               ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:756:47: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:756:47: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:809:41: error: expected template-name before '<' token
  809 | struct disconnection_reason_t : SafeEnum<disconnection_reason_t, uint8_t> {
      |                                         ^
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:809:41: error: expected '{' before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:809:41: error: expected unqualified-id before '<' token
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:973:1: error: expected declaration before '}' token
  973 | } // namespace ble
      | ^
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:26,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ConnectionParameters.h:467:31: error: field '_filterPolicy' has incomplete type 'initiator_filter_policy_t'
  467 |     initiator_filter_policy_t _filterPolicy;
      |                               ^~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:486:8: note: forward declaration of 'struct initiator_filter_policy_t'
  486 | struct initiator_filter_policy_t : SafeEnum<initiator_filter_policy_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:26,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ConnectionParameters.h:468:24: error: field '_ownAddressType' has incomplete type 'own_address_type_t'
  468 |     own_address_type_t _ownAddressType;
      |                        ^~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:8: note: forward declaration of 'struct own_address_type_t'
  546 | struct own_address_type_t : SafeEnum<own_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:26,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ConnectionParameters.h:209:64: error: 'ownAddress' has incomplete type
  209 |     ConnectionParameters &setOwnAddressType(own_address_type_t ownAddress)
      |                                             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:8: note: forward declaration of 'struct own_address_type_t'
  546 | struct own_address_type_t : SafeEnum<own_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:26,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ConnectionParameters.h:222:63: error: 'filterPolicy' has incomplete type
  222 |     ConnectionParameters &setFilter(initiator_filter_policy_t filterPolicy)
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:486:8: note: forward declaration of 'struct initiator_filter_policy_t'
  486 | struct initiator_filter_policy_t : SafeEnum<initiator_filter_policy_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:26,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ConnectionParameters.h:287:5: error: return type 'struct own_address_type_t' is incomplete
  287 |     {
      |     ^
./mbed-os/features/FEATURE_BLE/ble/gap/ConnectionParameters.h:297:5: error: return type 'struct initiator_filter_policy_t' is incomplete
  297 |     {
      |     ^
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:27,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:268:24: error: field 'own_address_type' has incomplete type 'own_address_type_t'
  268 |     own_address_type_t own_address_type;
      |                        ^~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:8: note: forward declaration of 'struct own_address_type_t'
  546 | struct own_address_type_t : SafeEnum<own_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:27,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:269:30: error: field 'scanning_filter_policy' has incomplete type 'scanning_filter_policy_t'
  269 |     scanning_filter_policy_t scanning_filter_policy;
      |                              ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:436:8: note: forward declaration of 'struct scanning_filter_policy_t'
  436 | struct scanning_filter_policy_t : SafeEnum<scanning_filter_policy_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:27,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:124:67: error: incomplete type 'own_address_type_t' used in nested name specifier
  124 |         own_address_type_t own_address_type = own_address_type_t::RANDOM,
      |                                                                   ^~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:125:85: error: incomplete type 'scanning_filter_policy_t' used in nested name specifier
  125 |         scanning_filter_policy_t scanning_filter_policy = scanning_filter_policy_t::NO_FILTER
      |                                                                                     ^~~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:124:28: error: 'own_address_type' has incomplete type
  124 |         own_address_type_t own_address_type = own_address_type_t::RANDOM,
      |         ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:8: note: forward declaration of 'struct own_address_type_t'
  546 | struct own_address_type_t : SafeEnum<own_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:27,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:125:34: error: 'scanning_filter_policy' has incomplete type
  125 |         scanning_filter_policy_t scanning_filter_policy = scanning_filter_policy_t::NO_FILTER
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:436:8: note: forward declaration of 'struct scanning_filter_policy_t'
  436 | struct scanning_filter_policy_t : SafeEnum<scanning_filter_policy_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:27,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:149:58: error: 'address' has incomplete type
  149 |     ScanParameters &setOwnAddressType(own_address_type_t address)
      |                                       ~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:8: note: forward declaration of 'struct own_address_type_t'
  546 | struct own_address_type_t : SafeEnum<own_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:27,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:159:5: error: return type 'struct own_address_type_t' is incomplete
  159 |     {
      |     ^
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:168:56: error: 'filter_policy' has incomplete type
  168 |     ScanParameters &setFilter(scanning_filter_policy_t filter_policy)
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:436:8: note: forward declaration of 'struct scanning_filter_policy_t'
  436 | struct scanning_filter_policy_t : SafeEnum<scanning_filter_policy_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:27,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/ScanParameters.h:178:5: error: return type 'struct scanning_filter_policy_t' is incomplete
  178 |     {
      |     ^
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:617:32: error: field '_peerAddressType' has incomplete type 'target_peer_address_type_t'
  617 |     target_peer_address_type_t _peerAddressType;
      |                                ^~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:588:8: note: forward declaration of 'struct target_peer_address_type_t'
  588 | struct target_peer_address_type_t : SafeEnum<target_peer_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:618:24: error: field '_ownAddressType' has incomplete type 'own_address_type_t'
  618 |     own_address_type_t _ownAddressType;
      |                        ^~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:8: note: forward declaration of 'struct own_address_type_t'
  546 | struct own_address_type_t : SafeEnum<own_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:619:33: error: field '_policy' has incomplete type 'advertising_filter_policy_t'
  619 |     advertising_filter_policy_t _policy;
      |                                 ^~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:394:8: note: forward declaration of 'struct advertising_filter_policy_t'
  394 | struct advertising_filter_policy_t : SafeEnum<advertising_filter_policy_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:136:58: error: could not convert 'ble::advertising_type_t::CONNECTABLE_UNDIRECTED' from 'ble::advertising_type_t::type' to 'ble::advertising_type_t'
  136 |         advertising_type_t advType = advertising_type_t::CONNECTABLE_UNDIRECTED,
      |                                      ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
      |                                                          |
      |                                                          ble::advertising_type_t::type
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h: In constructor 'ble::AdvertisingParameters::AdvertisingParameters(ble::advertising_type_t, ble::adv_interval_t, ble::adv_interval_t, bool)':
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:144:54: error: incomplete type 'target_peer_address_type_t' used in nested name specifier
  144 |         _peerAddressType(target_peer_address_type_t::PUBLIC),
      |                                                      ^~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:145:45: error: incomplete type 'own_address_type_t' used in nested name specifier
  145 |         _ownAddressType(own_address_type_t::RANDOM),
      |                                             ^~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:146:46: error: incomplete type 'advertising_filter_policy_t' used in nested name specifier
  146 |         _policy(advertising_filter_policy_t::NO_FILTER),
      |                                              ^~~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h: In constructor 'ble::AdvertisingParameters::AdvertisingParameters(ble::advertising_type_t, bool)':
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:181:54: error: incomplete type 'target_peer_address_type_t' used in nested name specifier
  181 |         _peerAddressType(target_peer_address_type_t::PUBLIC),
      |                                                      ^~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:182:45: error: incomplete type 'own_address_type_t' used in nested name specifier
  182 |         _ownAddressType(own_address_type_t::RANDOM),
      |                                             ^~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:183:46: error: incomplete type 'advertising_filter_policy_t' used in nested name specifier
  183 |         _policy(advertising_filter_policy_t::NO_FILTER),
      |                                              ^~~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h: In member function 'ble::AdvertisingParameters& ble::AdvertisingParameters::setType(ble::advertising_type_t, bool)':
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:215:24: error: no match for 'operator==' (operand types are 'ble::advertising_type_t' and 'ble::advertising_type_t::type')
  215 |         if (newAdvType == advertising_type_t::CONNECTABLE_UNDIRECTED ||
      |             ~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             |                                 |
      |             ble::advertising_type_t           ble::advertising_type_t::type
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note: candidate: 'template<class RepLHS, long unsigned int TBLHS, class RangeLHS, class FLHS, class RepRHS, long unsigned int TBRHS, class RangeRHS, class FRHS> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<RepRHS, TBRHS, RangeRHS, FRHS>)'
  428 | bool operator==(
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:215:47: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  215 |         if (newAdvType == advertising_type_t::CONNECTABLE_UNDIRECTED ||
      |                                               ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note: candidate: 'template<class Rep, long unsigned int Us, class Range, class F> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>)'
  445 | bool operator==(Duration<Rep, Us, Range, F> lhs, Duration<Rep, Us, Range, F> rhs)
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:215:47: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  215 |         if (newAdvType == advertising_type_t::CONNECTABLE_UNDIRECTED ||
      |                                               ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:23,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:14: note: candidate: 'bool ble::operator==(ble::advertising_type_t, ble::advertising_type_t)'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |              ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:44: note:   no known conversion for argument 2 from 'ble::advertising_type_t::type' to 'ble::advertising_type_t'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |                                     ~~~~~~~^~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:216:24: error: no match for 'operator==' (operand types are 'ble::advertising_type_t' and 'ble::advertising_type_t::type')
  216 |             newAdvType == advertising_type_t::CONNECTABLE_DIRECTED) {
      |             ~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             |                                 |
      |             ble::advertising_type_t           ble::advertising_type_t::type
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note: candidate: 'template<class RepLHS, long unsigned int TBLHS, class RangeLHS, class FLHS, class RepRHS, long unsigned int TBRHS, class RangeRHS, class FRHS> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<RepRHS, TBRHS, RangeRHS, FRHS>)'
  428 | bool operator==(
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:216:47: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  216 |             newAdvType == advertising_type_t::CONNECTABLE_DIRECTED) {
      |                                               ^~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note: candidate: 'template<class Rep, long unsigned int Us, class Range, class F> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>)'
  445 | bool operator==(Duration<Rep, Us, Range, F> lhs, Duration<Rep, Us, Range, F> rhs)
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:216:47: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  216 |             newAdvType == advertising_type_t::CONNECTABLE_DIRECTED) {
      |                                               ^~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:23,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:14: note: candidate: 'bool ble::operator==(ble::advertising_type_t, ble::advertising_type_t)'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |              ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:44: note:   no known conversion for argument 2 from 'ble::advertising_type_t::type' to 'ble::advertising_type_t'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |                                     ~~~~~~~^~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h: In member function 'ble::AdvertisingParameters& ble::AdvertisingParameters::setType(ble::advertising_type_t)':
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:237:24: error: no match for 'operator==' (operand types are 'ble::advertising_type_t' and 'ble::advertising_type_t::type')
  237 |         if (newAdvType == advertising_type_t::CONNECTABLE_UNDIRECTED ||
      |             ~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             |                                 |
      |             ble::advertising_type_t           ble::advertising_type_t::type
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note: candidate: 'template<class RepLHS, long unsigned int TBLHS, class RangeLHS, class FLHS, class RepRHS, long unsigned int TBRHS, class RangeRHS, class FRHS> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<RepRHS, TBRHS, RangeRHS, FRHS>)'
  428 | bool operator==(
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:237:47: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  237 |         if (newAdvType == advertising_type_t::CONNECTABLE_UNDIRECTED ||
      |                                               ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note: candidate: 'template<class Rep, long unsigned int Us, class Range, class F> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>)'
  445 | bool operator==(Duration<Rep, Us, Range, F> lhs, Duration<Rep, Us, Range, F> rhs)
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:237:47: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  237 |         if (newAdvType == advertising_type_t::CONNECTABLE_UNDIRECTED ||
      |                                               ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:23,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:14: note: candidate: 'bool ble::operator==(ble::advertising_type_t, ble::advertising_type_t)'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |              ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:44: note:   no known conversion for argument 2 from 'ble::advertising_type_t::type' to 'ble::advertising_type_t'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |                                     ~~~~~~~^~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:238:24: error: no match for 'operator==' (operand types are 'ble::advertising_type_t' and 'ble::advertising_type_t::type')
  238 |             newAdvType == advertising_type_t::CONNECTABLE_DIRECTED) {
      |             ~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             |                                 |
      |             ble::advertising_type_t           ble::advertising_type_t::type
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note: candidate: 'template<class RepLHS, long unsigned int TBLHS, class RangeLHS, class FLHS, class RepRHS, long unsigned int TBRHS, class RangeRHS, class FRHS> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<RepRHS, TBRHS, RangeRHS, FRHS>)'
  428 | bool operator==(
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:238:47: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  238 |             newAdvType == advertising_type_t::CONNECTABLE_DIRECTED) {
      |                                               ^~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note: candidate: 'template<class Rep, long unsigned int Us, class Range, class F> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>)'
  445 | bool operator==(Duration<Rep, Us, Range, F> lhs, Duration<Rep, Us, Range, F> rhs)
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:238:47: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  238 |             newAdvType == advertising_type_t::CONNECTABLE_DIRECTED) {
      |                                               ^~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:23,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:14: note: candidate: 'bool ble::operator==(ble::advertising_type_t, ble::advertising_type_t)'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |              ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:44: note:   no known conversion for argument 2 from 'ble::advertising_type_t::type' to 'ble::advertising_type_t'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |                                     ~~~~~~~^~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h: At global scope:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:344:65: error: 'addressType' has incomplete type
  344 |     AdvertisingParameters &setOwnAddressType(own_address_type_t addressType)
      |                                              ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:546:8: note: forward declaration of 'struct own_address_type_t'
  546 | struct own_address_type_t : SafeEnum<own_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:355:5: error: return type 'struct own_address_type_t' is incomplete
  355 |     {
      |     ^
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:368:36: error: 'addressType' has incomplete type
  368 |         target_peer_address_type_t addressType
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:588:8: note: forward declaration of 'struct target_peer_address_type_t'
  588 | struct target_peer_address_type_t : SafeEnum<target_peer_address_type_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:391:5: error: return type 'struct target_peer_address_type_t' is incomplete
  391 |     {
      |     ^
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:401:66: error: 'mode' has incomplete type
  401 |     AdvertisingParameters &setFilter(advertising_filter_policy_t mode)
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:394:8: note: forward declaration of 'struct advertising_filter_policy_t'
  394 | struct advertising_filter_policy_t : SafeEnum<advertising_filter_policy_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:412:5: error: return type 'struct advertising_filter_policy_t' is incomplete
  412 |     {
      |     ^
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h: In member function 'void ble::AdvertisingParameters::normalize()':
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:600:22: error: no match for 'operator==' (operand types are 'ble::advertising_type_t' and 'ble::advertising_type_t::type')
  600 |         if (_advType == advertising_type_t::NON_CONNECTABLE_UNDIRECTED) {
      |             ~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             |                               |
      |             ble::advertising_type_t         ble::advertising_type_t::type
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note: candidate: 'template<class RepLHS, long unsigned int TBLHS, class RangeLHS, class FLHS, class RepRHS, long unsigned int TBRHS, class RangeRHS, class FRHS> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<RepRHS, TBRHS, RangeRHS, FRHS>)'
  428 | bool operator==(
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:600:45: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  600 |         if (_advType == advertising_type_t::NON_CONNECTABLE_UNDIRECTED) {
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note: candidate: 'template<class Rep, long unsigned int Us, class Range, class F> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>)'
  445 | bool operator==(Duration<Rep, Us, Range, F> lhs, Duration<Rep, Us, Range, F> rhs)
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:600:45: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  600 |         if (_advType == advertising_type_t::NON_CONNECTABLE_UNDIRECTED) {
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:23,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:14: note: candidate: 'bool ble::operator==(ble::advertising_type_t, ble::advertising_type_t)'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |              ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:44: note:   no known conversion for argument 2 from 'ble::advertising_type_t::type' to 'ble::advertising_type_t'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |                                     ~~~~~~~^~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:604:22: error: no match for 'operator==' (operand types are 'ble::advertising_type_t' and 'ble::advertising_type_t::type')
  604 |         if (_advType == advertising_type_t::CONNECTABLE_DIRECTED ||
      |             ~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             |                               |
      |             ble::advertising_type_t         ble::advertising_type_t::type
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note: candidate: 'template<class RepLHS, long unsigned int TBLHS, class RangeLHS, class FLHS, class RepRHS, long unsigned int TBRHS, class RangeRHS, class FRHS> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<RepRHS, TBRHS, RangeRHS, FRHS>)'
  428 | bool operator==(
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:604:45: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  604 |         if (_advType == advertising_type_t::CONNECTABLE_DIRECTED ||
      |                                             ^~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note: candidate: 'template<class Rep, long unsigned int Us, class Range, class F> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>)'
  445 | bool operator==(Duration<Rep, Us, Range, F> lhs, Duration<Rep, Us, Range, F> rhs)
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:604:45: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  604 |         if (_advType == advertising_type_t::CONNECTABLE_DIRECTED ||
      |                                             ^~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:23,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:14: note: candidate: 'bool ble::operator==(ble::advertising_type_t, ble::advertising_type_t)'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |              ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:44: note:   no known conversion for argument 2 from 'ble::advertising_type_t::type' to 'ble::advertising_type_t'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |                                     ~~~~~~~^~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:605:22: error: no match for 'operator==' (operand types are 'ble::advertising_type_t' and 'ble::advertising_type_t::type')
  605 |             _advType == advertising_type_t::CONNECTABLE_UNDIRECTED) {
      |             ~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |             |                               |
      |             ble::advertising_type_t         ble::advertising_type_t::type
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note: candidate: 'template<class RepLHS, long unsigned int TBLHS, class RangeLHS, class FLHS, class RepRHS, long unsigned int TBRHS, class RangeRHS, class FRHS> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<RepRHS, TBRHS, RangeRHS, FRHS>)'
  428 | bool operator==(
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:428:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:605:45: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  605 |             _advType == advertising_type_t::CONNECTABLE_UNDIRECTED) {
      |                                             ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note: candidate: 'template<class Rep, long unsigned int Us, class Range, class F> bool ble::operator==(ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>, ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>)'
  445 | bool operator==(Duration<Rep, Us, Range, F> lhs, Duration<Rep, Us, Range, F> rhs)
      |      ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/common/Duration.h:445:6: note:   template argument deduction/substitution failed:
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:28,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/AdvertisingParameters.h:605:45: note:   'ble::advertising_type_t' is not derived from 'ble::Duration<OtherRep, OtherTB, OtherRange, OtherF>'
  605 |             _advType == advertising_type_t::CONNECTABLE_UNDIRECTED) {
      |                                             ^~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:23,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:14: note: candidate: 'bool ble::operator==(ble::advertising_type_t, ble::advertising_type_t)'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |              ^~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/SafeEnum.h:131:44: note:   no known conversion for argument 2 from 'ble::advertising_type_t::type' to 'ble::advertising_type_t'
  131 |  friend bool operator==(Target lhs, Target rhs) {
      |                                     ~~~~~~~^~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:29,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h: At global scope:
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:299:23: error: field 'ownRole' has incomplete type 'connection_role_t'
  299 |     connection_role_t ownRole;
      |                       ^~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:707:8: note: forward declaration of 'struct connection_role_t'
  707 | struct connection_role_t : SafeEnum<connection_role_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:29,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:204:27: error: 'ownRole' has incomplete type
  204 |         connection_role_t ownRole,
      |         ~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:707:8: note: forward declaration of 'struct connection_role_t'
  707 | struct connection_role_t : SafeEnum<connection_role_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:29,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:244:5: error: return type 'struct connection_role_t' is incomplete
  244 |     {
      |     ^
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:408:22: error: field 'peerClockAccuracy' has incomplete type 'clock_accuracy_t'
  408 |     clock_accuracy_t peerClockAccuracy;
      |                      ^~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:607:8: note: forward declaration of 'struct clock_accuracy_t'
  607 | struct clock_accuracy_t : SafeEnum<clock_accuracy_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:29,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:478:31: error: field 'dataStatus' has incomplete type 'advertising_data_status_t'
  478 |     advertising_data_status_t dataStatus;
      |                               ^~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:219:8: note: forward declaration of 'struct advertising_data_status_t'
  219 | struct advertising_data_status_t : SafeEnum<advertising_data_status_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:29,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:431:35: error: 'dataStatus' has incomplete type
  431 |         advertising_data_status_t dataStatus,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/BLETypes.h:25,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Types.h:219:8: note: forward declaration of 'struct advertising_data_status_t'
  219 | struct advertising_data_status_t : SafeEnum<advertising_data_status_t, uint8_t> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:29,
                 from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:668:10: error: 'disconnection_reason_t' in namespace 'ble' does not name a type
  668 |     ble::disconnection_reason_t reason;
      |          ^~~~~~~~~~~~~~~~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h: In constructor 'ble::DisconnectionCompleteEvent::DisconnectionCompleteEvent(ble::connection_handle_t, const disconnection_reason_t&)':
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:644:45: error: class 'ble::DisconnectionCompleteEvent' does not have any field named 'reason'
  644 |         connectionHandle(connectionHandle), reason(reason)
      |                                             ^~~~~~
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h: In member function 'const disconnection_reason_t& ble::DisconnectionCompleteEvent::getReason() const':
./mbed-os/features/FEATURE_BLE/ble/gap/Events.h:663:16: error: 'reason' was not declared in this scope
  663 |         return reason;
      |                ^~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/Gap.h:33,
                 from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h: At global scope:
./mbed-os/features/FEATURE_BLE/ble/gap/Gap.h:792:62: error: incomplete type 'duplicates_filter_t' used in nested name specifier
  792 |         duplicates_filter_t filtering = duplicates_filter_t::DISABLE,
      |                                                              ^~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:21,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/Gap.h:681:18: error: 'peripheral_privacy_configuration_t' in namespace 'ble' does not name a type
  681 |     typedef ble::peripheral_privacy_configuration_t PeripheralPrivacyConfiguration_t;
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mbed-os/features/FEATURE_BLE/ble/Gap.h:686:18: error: 'central_privay_configuration_t' in namespace 'ble' does not name a type
  686 |     typedef ble::central_privay_configuration_t CentralPrivacyConfiguration_t;
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h: In member function 'virtual ble_error_t ServiceDiscovery::reset()':
./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:173:77: warning: implicitly-declared 'constexpr UUID& UUID::operator=(const UUID&)' is deprecated [-Wdeprecated-copy]
  173 |         matchingServiceUUID        = UUID::ShortUUIDBytes_t(BLE_UUID_UNKNOWN);
      |                                                                             ^
In file included from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/UUID.h:229:5: note: because 'UUID' has user-provided 'UUID::UUID(const UUID&)'
  229 |     UUID(const UUID &source)
      |     ^~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:22,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/ServiceDiscovery.h:175:77: warning: implicitly-declared 'constexpr UUID& UUID::operator=(const UUID&)' is deprecated [-Wdeprecated-copy]
  175 |         matchingCharacteristicUUID = UUID::ShortUUIDBytes_t(BLE_UUID_UNKNOWN);
      |                                                                             ^
In file included from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/UUID.h:229:5: note: because 'UUID' has user-provided 'UUID::UUID(const UUID&)'
  229 |     UUID(const UUID &source)
      |     ^~~~
In file included from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:45,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/DiscoveredService.h: In member function 'void DiscoveredService::setup(UUID, GattAttribute::Handle_t, GattAttribute::Handle_t)':
./mbed-os/features/FEATURE_BLE/ble/DiscoveredService.h:113:16: warning: implicitly-declared 'constexpr UUID& UUID::operator=(const UUID&)' is deprecated [-Wdeprecated-copy]
  113 |         uuid = uuidIn;
      |                ^~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/UUID.h:229:5: note: because 'UUID' has user-provided 'UUID::UUID(const UUID&)'
  229 |     UUID(const UUID &source)
      |     ^~~~
In file included from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:48,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattConnectionClient.h: In constructor 'BlueNRGGattConnectionClient::BlueNRGGattConnectionClient(BlueNRGGattClient*, ble::interface::LegacyGap<ble::generic::GenericGap<ble::pal::vendor::cordio::Gap, ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> > >::Handle_t)':
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattConnectionClient.h:146:29: warning: implicitly-declared 'constexpr UUID& UUID::operator=(const UUID&)' is deprecated [-Wdeprecated-copy]
  146 |      _matchingServiceUUID = BLE_UUID_UNKNOWN;
      |                             ^~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/UUID.h:229:5: note: because 'UUID' has user-provided 'UUID::UUID(const UUID&)'
  229 |     UUID(const UUID &source)
      |     ^~~~
In file included from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:48,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattConnectionClient.h:147:38: warning: implicitly-declared 'constexpr UUID& UUID::operator=(const UUID&)' is deprecated [-Wdeprecated-copy]
  147 |      _matchingCharacteristicUUIDIn = BLE_UUID_UNKNOWN;
      |                                      ^~~~~~~~~~~~~~~~
In file included from ./mbed-os/features/FEATURE_BLE/ble/GattAttribute.h:20,
                 from ./mbed-os/features/FEATURE_BLE/ble/GattClient.h:21,
                 from ./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGattClient.h:44,
                 from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:39:
./mbed-os/features/FEATURE_BLE/ble/UUID.h:229:5: note: because 'UUID' has user-provided 'UUID::UUID(const UUID&)'
  229 |     UUID(const UUID &source)
      |     ^~~~
In file included from ./ble-x-nucleo-idb0xa1/source/BlueNRGGattClient.cpp:45:
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h: At global scope:
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:122:38: error: 'ble::interface::Gap<ble::generic::GenericGap<ble::pal::vendor::cordio::Gap, ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> > >::AddressType_t' has not been declared
  122 |                                 Gap::AddressType_t peerAddrType,
      |                                      ^~~~~~~~~~~~~
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:167:10: error: 'Role_t' in 'class ble::interface::Gap<ble::generic::GenericGap<ble::pal::vendor::cordio::Gap, ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> > >' does not name a type
  167 |     Gap::Role_t getGapRole(void);
      |          ^~~~~~
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:168:26: error: 'ble::interface::Gap<ble::generic::GenericGap<ble::pal::vendor::cordio::Gap, ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> > >::Role_t' has not been declared
  168 |     void setGapRole(Gap::Role_t role);
      |                          ^~~~~~
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:204:10: error: 'AdvertisingPolicyMode_t' in 'class ble::interface::Gap<ble::generic::GenericGap<ble::pal::vendor::cordio::Gap, ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> > >' does not name a type
  204 |     Gap::AdvertisingPolicyMode_t advertisingPolicyMode;
      |          ^~~~~~~~~~~~~~~~~~~~~~~
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:205:10: error: 'ScanningPolicyMode_t' in 'class ble::interface::Gap<ble::generic::GenericGap<ble::pal::vendor::cordio::Gap, ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> > >' does not name a type
  205 |     Gap::ScanningPolicyMode_t scanningPolicyMode;
      |          ^~~~~~~~~~~~~~~~~~~~
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h: In constructor 'BlueNRGGap::BlueNRGGap()':
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:216:9: error: 'advertisingPolicyMode' was not declared in this scope; did you mean 'AdvertisingPolicyMode_t'?
  216 |         advertisingPolicyMode = Gap::ADV_POLICY_IGNORE_WHITELIST;
      |         ^~~~~~~~~~~~~~~~~~~~~
      |         AdvertisingPolicyMode_t
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:216:38: error: 'ADV_POLICY_IGNORE_WHITELIST' is not a member of 'ble::interface::Gap<ble::generic::GenericGap<ble::pal::vendor::cordio::Gap, ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> > >'
  216 |         advertisingPolicyMode = Gap::ADV_POLICY_IGNORE_WHITELIST;
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:217:9: error: 'scanningPolicyMode' was not declared in this scope; did you mean 'setScanningPolicyMode'?
  217 |         scanningPolicyMode    = Gap::SCAN_POLICY_IGNORE_WHITELIST;
      |         ^~~~~~~~~~~~~~~~~~
      |         setScanningPolicyMode
./ble-x-nucleo-idb0xa1/bluenrg/BlueNRGGap.h:217:38: error: 'SCAN_POLICY_IGNORE_WHITELIST' is not a member of 'ble::interface::Gap<ble::generic::GenericGap<ble::pal::vendor::cordio::Gap, ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> >, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor> > >'
  217 |         scanningPolicyMode    = Gap::SCAN_POLICY_IGNORE_WHITELIST;
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~