Non-Static Data Duration in Static Functions
<p>I would like to initialize a static array of abstract interfaces.  I'm just wondering if a call to a static function to build the data is a valid means of initialization.  What will the lifetime of the data that the pointer is pointing to in the code below look like?</p>

<pre><code>typedef class FOO {
public:
    static const int** array_int;
    static const int** array_int_init();

} FOO;

const int** FOO::array_int_init()
{
    const int A = 5;
    const int B = 6;
    const int C = 7;

    const int* array_int[] = { &amp;A, &amp;B, &amp;C };

    return &amp;array_int[0];
}
const int** FOO::array_int = array_int_init();
</code></pre>

<p>Also what is the best way to find specifics about behaviors like this in the C++ specification?  I have N3225=10-0215 but even looking at the index and the content I find I would need to read a lot with no promise of an answer.  </p>
