Сутки добрые всем!
Продолжаю делать трудные шаги в мире C++. Назрело вот:
//p3f.h
struct P3f
{
float x, y, z;
};
//sample.h
struct P3f; //fwd decl
struct Sample
{
Sample();
P3f& pos;
};
//sample.cpp
#include "Sample.h"
#include "p3f.h"
Sample::Sample(): pos(P3f())
{
}
В VS7.1 подобная инициализация неконстантной ссылки (pos) компилируется, временный и безымянный P3f() существует в течение жизни ссылки. Нестандартное решение, но очень хочется — используя ссылки вместо указателей, иметь также все преимущества forward declaration. Вопрос: как это сделать стандартными методами, изящно и эффективно?