CMake + GoogleTest выдает ошибки переопределения в коллекции небольших библиотек [дубликат]

Используйте что-то вроде PreRender, оно делает статические страницы вашего сайта, чтобы поисковые системы могли его индексировать.

Здесь вы можете узнать, какие платформы доступны: https: // prerender. И.О. / документация / установка-промежуточные # жерех-сеть

1
задан MartenBE 6 March 2019 в 10:55
поделиться

1 ответ

Вам необходимо поместить реализацию в файл csv.cpp, за исключением шаблонов:

const std::string CsvData::extensie{".csv"};

// Scheidingsteken: teken in vlottendekommagetallen
// Voor een Nederlandstalige excel, scheidingsteken ',' opgeven
CsvData::CsvData(const std::string& bestandsnaam, char scheidingsteken, char delimiter)
: scheidingsteken{scheidingsteken}, delimiter{delimiter}, bestandsnaam{bestandsnaam}
{
    if (bestandsnaam.empty())
    {
        throw "Lege bestandsnaam";
    }

    int begin_extensie = bestandsnaam.rfind(extensie);

    if (begin_extensie == 0)
    {
        throw "Ongeldige bestandsnaam";
    }

    if ((begin_extensie == std::string::npos) || (begin_extensie != (bestandsnaam.size() - extensie.size())))
    {
        this->bestandsnaam.append(extensie);
    }
}

void CsvData::voeg_data_toe(const std::vector<double>& nieuwe_data)
{
    data.push_back(nieuwe_data);

    int kolom_grootte = nieuwe_data.size();
    if (kolom_grootte > max_kolom_grootte)
    {
        max_kolom_grootte = kolom_grootte;
    }
}

std::string CsvData::to_string() const
{
    std::stringstream out;

    for (int i = 0; i < max_kolom_grootte; i++)
    {
        for (int j = 0; j < data.size(); j++)
        {
            if (i < data[j].size())
            {
                out << std::setprecision(precisie) << std::scientific << data[j][i];
            }

            if (j == (data.size() - 1))
            {
                out << '\n';
            }
            else
            {
                out << delimiter;
            }
        }
    }

    std::string content = out.str();
    std::replace(content.begin(), content.end(), '.', scheidingsteken);

    return content;
}

std::string CsvData::geef_bestandsnaam() const
{
    return bestandsnaam;
}

void CsvData::write_to_file() const
{
    std::ofstream out(bestandsnaam);
    assert(out);

    out << to_string();
}
0
ответ дан Matthieu Brucher 6 March 2019 в 10:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: