Câu hỏi liên quan

0 Phiếu
1 Trả lời
0 Phiếu
4 Câu trả lời
0 Phiếu
6 Câu trả lời
0 Phiếu
0 Câu trả lời

Nên std::unique_ptr <void> được phép


0 Phiếu
Đã hỏi 17/5/2016 bởi Fgnfor (740 điểm)
Đây là một câu hỏi rất đơn giản. Xem xét các mã sau đây:
#include <iostream>
#include <memory>
typedef std::unique_ptr<void> UniqueVoidPtr;
int main() {
    UniqueVoidPtr p(new int);
    return 0;
}
Compiling với cygwin (g ++ 4.5.3) với các sau đây command g++ -std=c++0x -o prog file.cpp tác phẩm chỉ là tốt. Tuy nhiên, biên dịch với microsoft compiler (VS 2010 hoặc 2013) tôi nhận được lỗi này:
C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\INCLUDE\\memory(2067) : error C2070: 'void': illegal sizeof operand
        C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\INCLUDE\\memory(2066) : while compiling class template member function 'void std::default_delete<_Ty>::operator ()(_Ty *) const'
        with
        [
            _Ty=void
        ]
        C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\INCLUDE\\type_traits(650) : see reference to class template instantiation 'std::default_delete<_Ty>' being compiled
        with
        [
            _Ty=void
        ]
        C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\INCLUDE\\memory(2193) : see reference to class template instantiation 'std::tr1::is_empty<_Ty>' being compiled
        with
        [
            _Ty=std::default_delete<void>
        ]
        foo1.cpp(7) : see reference to class template instantiation 'std::unique_ptr<_Ty>' being compiled
        with
        [
            _Ty=void
        ]
này dự kiến sẽ là? Tôi đang viết một class nơi mà tôi muốn có một pointer duy nhất trong các lớp. Trong khi cố gắng để làm việc ra ngữ nghĩa của một constructor di chuyển cho lớp, tôi chạy vào trong này (tôi giả định rằng bởi vì cuối cùng tôi đã constructor di chuyển của tôi mã hoá một cách chính xác: tức là các lỗi đã được cố định).

Xin vui lòng đăng nhập hoặc đăng ký để trả lời câu hỏi này.


ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...