我试图理解下面的代码片段
\ntemplate <typename T>\nclass testopaque {\npublic:\n void test(T var = T()) {}\n};\nRun Code Online (Sandbox Code Playgroud)\n使用指针类型示例 int * 调用时默认参数如何工作
\nint main() {\n testopaque<int *> obj1;\n obj1.test();\n}\nRun Code Online (Sandbox Code Playgroud)\n调用 obj1.test() 时编译器会生成什么。当我尝试时出现编译器错误
\nint main() {\n int * var = int *();\n}\n\nerror: expected primary-expression before \xe2\x80\x98int\xe2\x80\x99\nint * ptr = int *();\nRun Code Online (Sandbox Code Playgroud)\n