क्या किसी टेम्पलेट टाइपनाम वाद के तर्क के रूप में संदर्भ पास करने का कोई तरीका है? मेरा मतलब है कि एक इंट पास करने के बजाय, उदाहरण के लिए, एक इंट का संदर्भ पास करना।
template <typename T>
struct Foo
{
Foo(T arg) : ptr(arg) {}
T ptr;
};
int main()
{
int* a = new int(6);
Foo<decltype(a)> foo1(a); // ptr is a copy of a pointer
Foo<decltype(&a)> foo1(&a); // ptr seems to be a pointer to a pointer
}
मुझे पता है कि मैं 'ptr' के सदस्य को कक्षा में T & T बनाकर एक पॉइंटर का संदर्भ बना सकता हूं, लेकिन मैं सोच रहा था कि क्या यह उस तर्क से किया जा सकता है जिसे टेम्प्लेट तर्क में पास किया गया है।
decltype, क्योंकि शीर्षक लेने का शाब्दिक अर्थ आप बस लिख सकते हैंFoo<int*&>