Still learning about these generative AI tools. My assessment is that it is a Hugh leap in Natural Language Processing.  And for programming, might enable us to weave generated pieces into a coherent product faster.  It will also allow program creation that might not otherwise happen.

Here is a prompt that I gave Bing copilot – no thrills

With the copilot – it appears to grab stuff from github, but this is a popular library.  A real test of that would be to use a obscure or a really fresh github library.

Generate a C++ class that will read the following toml file usinghttps://github.com/ToruNiina/toml11  and store this in a structure for the 2 parts program and script.   have method to retrieve the structures for use

So, I created a toml file and said create a class to read.  and what you get is a easily to test proof of concept.  And yes it works – with some easy mods – like real location of you file

 

#include <iostream>
#include <toml.hpp>

struct Program {
    std::string pgm;
    std::string parms;
    std::string user;
    int interval_seconds;
    std::string status;
};

struct Script {
    std::string location;
    std::string pgm;
    std::string options;
    int throttle_minutes;
};

class TomlReader {
public:
    TomlReader(const std::string& filename) : filename_(filename) {}

    bool read() {
        try {
            data_ = toml::parse_file(filename_);
            program_ = toml::find<Program>(data_, "program");
            script_ = toml::find<Script>(data_, "script");
            return true;
        } catch (const toml::parse_error& e) {
            std::cerr << "Error parsing TOML file: " << e.what() << std::endl;
            return false;
        }
    }

    const Program& getProgram() const {
        return program_;
    }

    const Script& getScript() const {
        return script_;
    }

private:
    std::string filename_;
    toml::value data_;
    Program program_;
    Script script_;
};

int main() {
    TomlReader reader("your_toml_file.toml");
    if (reader.read()) {
        const Program& program = reader.getProgram();
        const Script& script = reader.getScript();

        std::cout << "Program:" << std::endl;
        std::cout << "  pgm: " << program.pgm << std::endl;
        std::cout << "  parms: " << program.parms << std::endl;
        // Add other fields as needed

        std::cout << "Script:" << std::endl;
        std::cout << "  location: " << script.location << std::endl;
        std::cout << "  pgm: " << script.pgm << std::endl;
        // Add other fields as needed
    }

    return 0;
}

 

 

Leave a Reply