boost::property_tree и decltype
От: Nikita.Trophimov  
Дата: 10.04.13 04:22
Оценка:
Свёл код до минимального примера:

#include <boost/property_tree/ptree.hpp>

struct Foo
{
    int bar;
};

int main()
{
    Foo instance;

    boost::property_tree::ptree pt;
    pt.get<decltype(instance.bar)>("Name");
}


MSVC-11.0 при попытке компиляции выдаёт ошибку:

error C2662: 'Type boost::property_tree::basic_ptree<std::string,std::string,std::less<_Kty>>::get<int>(const boost::property_tree::string_path<std::string,boost::property_tree::id_translator<std::string>> &) const' : cannot convert 'this' pointer from 'Foo' to 'const boost::property_tree::basic_ptree<std::string,std::string,std::less<_Kty>> &'


gcc 4.8.0 компилирует без проблем — http://liveworkspace.org/code/2poZzx$0

Кто прав?

Вот так ошибки уже нет:

pt.get<decltype(Foo::bar)>("Name");
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.