class SetBlocksTemperatureCommand : public QUndoCommand
{
public:
    SetBlocksTemperatureCommand(const QList<Block *> &blocks, double temperature,
                               QUndoCommand *parent = 0);
    void undo();
    void redo();
    
private:
    struct BlockWithOldTemperature {
        BlockWithOldTemperature(Block *block, double new_temperature);
        void restoreTemperature() {
                m_block->m_temperature = m_old_t;
        }
        void applyTemperature() {
                m_block->m_temperature = m_new_t;
        }
    private:
        Block *const m_block;
        const double m_old_t;
        const double m_new_t; //хрень :(
    };
    QList<BlockWithOldTemperature> m_blocks;
    double m_temperature;
};
А теперь, собственно, вопрос. Поле m_new_t будет одинаково для всех экземпляров класса BlockWithOldTemperature, созданных в одном и том же экземпляре класса SetBlocksTemperatureCommand (так просто получится по реализации). Возможно ли как-то сэкономить память и не класть в каждый экземпляр BlockWithOldTemperature по лишнему double'у?



