foooooo( int* ) は自作関数ではないので、
受け取りを書き換える事は出来ません。

struct, class で wrap するつもりはありません。
どうやらテンポラリーは無理みたいなので諦めました。

どうもありがとう

class Int
{

public:
   Int( int i ){ m_int = i; }

private:
   int m_int;

public:
   operator int() const { return m_int; }

};

foooooo( &Int( 0 ) );
foooooo( &Int( 1 ) );
foooooo( &Int( 2 ) );
foooooo( &Int( 3 ) );