2012-11-05 27 views
13

Tôi đã cài đặt Visual C++ Compiler November 2012 CTP và tạo một dự án bảng điều khiển C++. Tôi đã viết điều này trongMẫu biến thể trong VS 2012 (Visual C++ Tháng 11 năm 2012 CTP)

template<typename T> 
void Test(T value){ 
} 
template<typename T, typename... Args> 
void Test(T value, Args... args){ 
    Test(value); 
    Test(args...); 
} 

int main(){ 
    Test(1,2,3); 
} 

Sau đó, tôi nhấn F6 để xây dựng trong IDE. Tôi nhận được lỗi này trên dòng 4

error C2143: syntax error : missing ',' before '...' 

Danh sách biên dịch "Mẫu biến thể" vì vậy tôi tin rằng điều này sẽ hoạt động. Tôi hiểu intellisense có thể không chính xác tuy nhiên 'trình biên dịch' nên làm việc. Tôi không thể xây dựng từ IDE? Tôi có phải kích hoạt một cái gì đó ở đâu đó không? int i{4}; dường như không hoạt động hoặc tôi chắc chắn rằng khởi tạo đồng bộ hợp lệ.

Trả lời

36

Trong Properties dự án, hãy chắc chắn để chọn Microsoft Visual C++ Compiler tháng 11 năm 2012 CTP:

Toolchain

Các toolchain mới không thay thế cho Visual C++ 2012 toolchain hiện có, và nó không phải là được bật theo mặc định. Nó được cài đặt song song với chuỗi công cụ hiện có.

Nếu bạn chọn chuỗi công cụ mới, chương trình của bạn sẽ biên dịch mà không có lỗi.

+3

Cảm ơn James. Wow bạn thậm chí đã thực hiện một ảnh chụp màn hình –

+0

VS2012 Phiên bản 11.0.60610.01 Cập nhật 3 vẫn không biên dịch mẫu từ câu hỏi, mặc dù chọn "Visual Studio 2012 (v110)" làm Nền tảng công cụ. – mloskot

+4

@mloskot: Bộ công cụ v110 không hỗ trợ các mẫu variadic và sẽ không bao giờ. Bạn cần sử dụng CTP tháng 11 (được liên kết trong câu hỏi) hoặc tốt hơn là bản xem trước mới được phát hành của Visual Studio 2013. –

Các vấn đề liên quan