C++ Visual Studio 2015 Update 1中模板化代码的初始值设定项列表失败
守则:C++ Visual Studio 2015 Update 1中模板化代码的初始值设定项列表失败,c++,visual-studio-2015,c++14,C++,Visual Studio 2015,C++14,守则: class FString : public StringFormatter<FString> { public: FString() : StringFormatter<FString>{this->buffer} {} // allow assignment and construction from std::string. FString(const std::string &oth
class FString : public StringFormatter<FString> {
public:
FString()
: StringFormatter<FString>{this->buffer}
{}
// allow assignment and construction from std::string.
FString(const std::string &other)
:
StringFormatter<FString>{this->buffer},
buffer{other} {}
下面是相关文件:看起来像MSVC中的一个bug 您可以使用typedef/别名:
using base = StringFormatter<FString>;
FString() : base{this->buffer} {}
使用base=StringFormatter;
FString():基{this->buffer}{}
或与带大括号的初始列表分开:
FString() : StringFormatter<FString>(this->buffer) {}
FString():StringFormatter(此->缓冲区){}
>围绕这个问题。我已经在连接上提交了一个bug,当有回应时我会更新我的答案。VisualC++团队响应了;这个错误应该用VS2015更新3修复:)我今天用VS2015更新3检查了一下,它似乎已经修复了。
../util/stringformatter.h(250): error C2059: syntax error: '{' ../util/stringformatter.h(250): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
../util/stringformatter.h(256): error C2059: syntax error: ','
../util/stringformatter.h(257): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
using base = StringFormatter<FString>;
FString() : base{this->buffer} {}
FString() : StringFormatter<FString>(this->buffer) {}