基本上在下面我想看看我是否可以绕过不得不使用auto
关键字
假设我们有以下代码 [适用于 g++ 4.9.2 (Ubuntu 4.9.2-10ubuntu13) & clang version 3.6.0]:
//g++ -std=c++14 test.cpp
//test.cpp
#include <iostream>
using namespace std;
template<typename T>
constexpr auto create() {
class test {
public:
int i;
virtual int get(){
return 123;
}
} r;
return r;
}
auto v = create<int>();
int main(void){
cout<<v.get()<<endl;
}
如何在声明/定义时指定类型v
而不是使用
auto
关键字?我试过create<int>::test v = create<int>();
了,但这不起作用。
ps
1)这与我在Returning a class from a constexpr function requires virtual keyword with g++中提出的问题不同,即使代码相同
2)我不想在函数之外定义类。