Проблема со слабым сравнением в VS10 - PullRequest
1 голос
/ 22 июля 2010

Я не могу заставить 'operator <' скомпилировать для weak_ptr с использованием VS10.Я пропускаю #include или #using? </p>

Даже пример кода в документации не работает для меня.http://msdn.microsoft.com/en-us/library/bb982759.aspx

// temp.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


// std_tr1__memory__operator_lt.cpp 
// compile with: /EHsc 
#include <memory> 
#include <iostream> 

int main() 
    { 
    std::shared_ptr<int> sp0(new int(0)); 
    std::shared_ptr<int> sp1(new int(0)); 

    std::cout << "sp0 < sp0 == " << std::boolalpha 
        << (sp0 < sp0) << std::endl; 
    std::cout << "sp0 < sp1 == " << std::boolalpha 
        << (sp0 < sp1) << std::endl; 
    std::cout << "sp1 < sp0 == " << std::boolalpha 
        << (sp1 < sp0) << std::endl; 
    std::cout << std::endl; 

    std::weak_ptr<int> wp0(sp0); 
    std::weak_ptr<int> wp1(sp1); 

    std::cout << "wp0 < wp0 == " << std::boolalpha 
        << (wp0 < wp0) << std::endl; 
    std::cout << "wp0 < wp1 == " << std::boolalpha 
        << (wp0 < wp1) << std::endl; 
    std::cout << "wp1 < wp0 == " << std::boolalpha 
        << (wp1 < wp0) << std::endl; 

    return (0); 
    } 

1 Ответ

1 голос
/ 22 июля 2010

Оказывается, что в заголовочном файле нет незакомментированного оператора bool <(const weak_ptr &, const слабый_ptr &).Так что в отличие от документации, это не поддерживается. </p>

...