ちょっとしたバックストーリーが必要な場合は、この質問を参照してください。
ものを不変データとして渡したい。
template<class T>
class A
{
public:
void send(const T& value);
};
A<int> a;
a.send(1);
ここまでは順調ですね。定数値を送信しただけですが、ポインターを使用すると問題が発生します。
A<int *> a;
int b = 1;
a.send(&b);
最終的には次のようになります。
void send(int *const & value)
現在、参照として変更できないポインターを渡していますが、このポインターが指す内容は変更できます。これは正しいですが、このポインターが指すコンテンツを変更することはできません。
ここでの私の意図は、物事を不変にすることですが、これは可能ですか?