Есть ли рабочий пример yaml- cpp для Visual Studio? - PullRequest
0 голосов
/ 07 марта 2020

Я искал не только документацию (пример кода и файл YAML), чтобы можно было быстро приступить к работе с Yaml- Cpp. Я бы предпочел решение Visual Studio (2019), если кто-то может указать мне на это.

1 Ответ

0 голосов
/ 01 апреля 2020

Одно решение, если вы используете cmake, вы можете использовать vcpkg

, установив его как задокументированный, а затем vcpkg install yaml-cpp.

после в вашем CMakeLists.txt вы можете добавить:

find_package(yaml-cpp CONFIG REQUIRED)
### your other config here ...
### ...
target_link_libraries(main PRIVATE yaml-cpp) #main is your executable target's name

после этого в вашем "main. cpp" этого будет достаточно, например:

#pragma warning(push)
#pragma warning(disable: 4996)
#pragma warning(disable: 4251)
#pragma warning(disable: 4275)
#include <yaml-cpp/yaml.h>
#pragma warning(pop)

#include <fstream>
#include <filesystem> // this is C++17, just foe eg to save a YAML file.

namespace fs = std::filesystem;

int main() {

  fs::path pf = "file.yaml"; // you can use std::string as well
  std::ofstream wf(pf, std::ios::binary | std::ios::out);
  if (!wf.is_open()) {
    return 1;
   }

    int values[] = {1, 2, 3, 4};

    YAML::Emitter out(wf);
    out << YAML::BeginMap;
    out << YAML::Key << "MyKey" << YAML::Value << YAML::BeginSeq;
    for (auto& v : values) {
            out << v;
    }
    out << YAML::EndSeq << YAML::EndMap;

    wf.close();
    if (!wf.good()) {
        return 1;
    }

    return 0;
}

Примечание: #pragma warning(...) предназначены для отключения некоторые предупреждения связаны, поэтому необязательны.

Этого должно быть достаточно, чтобы использовать в качестве примера "quicksart".

...