"no match for" in PersistentStorage.h on line 126


I am looking for any insghts into how to solve this error.

What is happening is that I am getting a “no match for” when using the Persistent Storage.

Globally I have these defined:

struct Settings
    uint    minorVersion;
    uint    majorVersion;
    uint    dotVersion;
    seq     Patterns[11*16];

DSY_SDRAM_BSS Settings Default_Settings;
DSY_SDRAM_BSS PersistentStorage<Settings> storage(hw.seed.qspi);

Then inside my main loop just after I call hw.Init(true);


The error points to line 126 in PersistentStorage.h

        if(settings_ != storage_data->user_data)

It seems to highlight just before the ‘!=’.

Any thoughts or help on this would be appreciated.


Note: I started a thread here on this topic:

Have you defined the != operator on the Settings struct? That’s what will actually determine whether the struct has changed. You can read a little more about operator overloading here if you’re unfamiliar, particularly the “Comparison operators” section.

@Corvus_Prudens ,

Yes, I sure did, I got that work and then I realized that it also made a local copy of the Settings template in local SRAM. For me, I haev a rather larger memory block that I’m dealing with to save / load a number of things. Right now, this storage class won’t quite work for me, but I did get it running.