Visual Studio 2012 не поддерживает инициализацию списка unordered_set (c ++ stl)?

0
#include <iostream>
#include <string>
#include <unordered_set>

template<class T>
T cmerge (T a, T b) { T t(a); t.insert(b.begin(),b.end()); return t; }

int main ()
{
    std::unordered_set<std::string> first;                                // empty
    std::unordered_set<std::string> second ( {"red","green","blue"} );    // init list
    std::unordered_set<std::string> third ( {"orange","pink","yellow"} ); // init list
    std::unordered_set<std::string> fourth ( second );                    // copy
    std::unordered_set<std::string> fifth ( cmerge(third,fourth) );       // move
    std::unordered_set<std::string> sixth ( fifth.begin(), fifth.end() ); // range

    std::cout << "sixth contains:";
    for (const std::string& x: sixth) std::cout << " " << x;
    std::cout << std::endl;

    return 0;
}

Этот сегмент кода (копия с http://www.cplusplus.com/reference/unordered_set/unordered_set/unordered_set/) не может быть правильно скомпилирован в visual studio 2012. Интересно, поддерживает ли визуальная студия функцию, которая может перечислить инициализацию unordered_set (или другие контейнеры stl)? Пожалуйста, скажите мне ответы, спасибо!

  • 1
    Это C ++ 11, и я уверен, что VS 2012 ... нет.
  • 3
    Несмотря на то, что VS 2012 реализует некоторые функции C ++ 11, он еще далеко не завершен. Для этого кода вам действительно нужен 2013 год (с которым он работает просто отлично).
Теги:
stl
visual-studio-2012

1 ответ

0
Лучший ответ

VC11 (Visual Studio 2012) не поддерживает списки инициализаторов.

http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx

Для этого вам нужна Visual Studio 2013, которая реализует эту и многие другие возможности C + 11.

  • 0
    /s/many/some/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню