Static initialization of PGM_P in struct

Suppose I have a struct like:

struct SomeStruct {
    PGM_P name;
    // Other fields...
};

I would like to write:

SomeStruct s[] = {
    {PSTR ("One")},
    {PSTR ("Two")}
};

Unfortunately the compiler refuses to compile this. I can work it around with something like:

const char oneStr[] PROGMEM = "One";

SomeStruct s[] = {
    {oneStr},
    // ...
};

But it's a bit too complicated for my taste. Is there a way to put the strings inside the array declaration?

Thanks in advance!

I think that you should make the struct definition normally then put the array of structs into progmem with a progmem pointer to the array. Then structs and members can be addressed as offsets to the pointer in the normal manner.

http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_rom_array

OK, it seems there is no other way :(. Thanks WizenedEE.