Jika saya diizinkan melakukan hal berikut:
template <typename T = int>
class Foo{
};
Mengapa saya tidak diizinkan melakukan hal berikut di main?
Foo me;
Tetapi saya harus menentukan yang berikut:
Foo<int> me;
C ++ 11 memperkenalkan argumen templat default dan saat ini mereka sulit dipahami oleh pemahaman lengkap saya.
Foo
mungkin pengidentifikasi template atau mungkin instantiasi eksplisit tergantung pada apakah ada argumen default. Lebih baik menjaga sintaksis Instansiasi eksplisit. Anggap saja seperti fungsifoo
dengan satu parameter standar. Anda tidak dapat menyebutnya sepertifoo
, Anda menyebutnya denganfoo()
. Masuk akal untuk menjaga ini konsisten.