170 похожих чатов

Парни, выкидывает такую ощику: LexicalAnalyzer.obj : error LNK2005: "void __cdecl

getSplittedText(...) уже определен в L.W.2 - Work with Regular Expression.obj

Не подскажете как исправить?

LexicalAnalyzer.сpp:

void LexicalAnalyzer::Analyze()
{
try
{
std::vector<std::string> splittedStrs;

getSplittedText(FileReader::read_from_file("file.txt").str(), splittedStrs);
}
catch (const std::exception& ex)
{
throw std::runtime_error("");
}
}



LexicalAnalyzer.hpp:

#include <tuple>

#include "FileReader.hpp"
#include "TextSplitter.hpp"

class LexicalAnalyzer
{
public:

static void Analyze();

private:
std::vector<std::tuple<std::string, std::string, std::string>> lexemTable;
};



L.W.2 - Work with Regular Expression.cpp:

#include "LexicalAnalyzer.hpp"

int main()
{
try
{
LexicalAnalyzer::Analyze();
}
catch (const std::exception& ex)
{
std::cerr << ex.what();
return -1;
}
return 0;
}

FileReader.hpp:

#pragma once
#include <string>
#include <fstream>
#include <iostream>
#include <sstream>

class FileReader
{
public:

static std::stringstream read_from_file(const char* filename)
{
try
{
std::ifstream file(filename);

if (!file.is_open())
{
throw std::runtime_error("Error with reading file.");
}

std::stringstream buffer{};
buffer << file.rdbuf();
return buffer;
}
catch (const std::exception& ex)
{
throw ex;
}
}
};

FileSplitter.hpp:

#pragma once
#include <algorithm>
#include <vector>

template <class Container>
void strSplitter(const std::string& str, Container& cont,
const std::string& delims = ";")
{
std::size_t current, previous = 0;
current = str.find_first_of(delims);
while (current != std::string::npos) {
cont.push_back(str.substr(previous, current - previous));
previous = current + 1;
current = str.find_first_of(delims, previous);
}
cont.push_back(str.substr(previous, current - previous));
}

void getSplittedText(std::string rawStr, std::vector<std::string>& splittedStrs)
{
strSplitter<std::vector<std::string>>(rawStr, splittedStrs);
}

11 ответов

20 просмотров

для изпровленея ащики нужна всиголищ https://bfy.tw/QgFI .... вбить lnk2005 в гугл.

Во-вторых, вы за каким лешем пишите определение функции в h файле? Вам говорили что так можно?

Gabriel- Автор вопроса
Gabriel
Да, говорили что можно.

При каких условиях?

Gabriel- Автор вопроса
🐈
При каких условиях?

Шаблоны, к примеру.

Gabriel
Шаблоны, к примеру.

Шаблоны это не функции

Это нарушение ODR, ищи, где эта get SplittedText определена, и оставь только одно определение

Нельзя её в заголовочном файле определять

В следующий раз такое через pastebin.com или аналоги

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта