Language: C++

#include <iostream>
#include <string>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include <queue>
#include <cmath>

#define	MOD 1000000007;
#define PI 3.14159265358979323846;
using namespace std;
typedef long long ll;
ll mod = 1000000007;

string S;
int total = 0;
vector<string> split(const string &str, char sep)
{
	std::vector<std::string> v;        // 分割結果を格納するベクター
	auto first = str.begin();              // テキストの最初を指すイテレータ
	while (first != str.end()) {         // テキストが残っている間ループ
		auto last = first;                      // 分割文字列末尾へのイテレータ
		while (last != str.end() && *last != sep)       // 末尾 or セパレータ文字まで進める
			++last;
		v.push_back(std::string(first, last));       // 分割文字を出力
		if (last != str.end())
			++last;
		first = last;          // 次の処理のためにイテレータを設定
	}
	return v;
}

void count(string s)
{
	vector<string> v = split(s, '+');
	for (vector<string>::iterator it = v.begin(); it != v.end(); it++)
	{
		total += stoi(*it);
	}
}

void setPlus(int d, string s, int p)
{
	if (d == S.size() - 1)
	{
		count(s);
		return;
	}
	d++;
	string t = string(s);
	setPlus(d, t.insert(p, "+"), p + 2);
	setPlus(d, s, p + 1);
	d--;
}

int main()
{
	cin >> S;

	setPlus(0, S, 1);
#include <iostream>
#include <string>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include <queue>
#include <cmath>

#define	MOD 1000000007;
#define PI 3.14159265358979323846;
using namespace std;
typedef long long ll;
ll mod = 1000000007;

string S;
int total = 0;
vector<string> split(const string &str, char sep)
{
	std::vector<std::string> v;        // 分割結果を格納するベクター
	auto first = str.begin();              // テキストの最初を指すイテレータ
	while (first != str.end()) {         // テキストが残っている間ループ
		auto last = first;                      // 分割文字列末尾へのイテレータ
		while (last != str.end() && *last != sep)       // 末尾 or セパレータ文字まで進める
			++last;
		v.push_back(std::string(first, last));       // 分割文字を出力
		if (last != str.end())
			++last;
		first = last;          // 次の処理のためにイテレータを設定
	}
	return v;
}

void count(string s)
{
	vector<string> v = split(s, '+');
	for (vector<string>::iterator it = v.begin(); it != v.end(); it++)
	{
		total += stoi(*it);
	}
}

void setPlus(int d, string s, int p)
{
	if (d == S.size() - 1)
	{
		count(s);
		return;
	}
	d++;
	string t = string(s);
	setPlus(d, t.insert(p, "+"), p + 2);
	setPlus(d, s, p + 1);
	d--;
}

int main()
{
	cin >> S;

	setPlus(0, S, 1);

	cout << total << endl;
	return 0;
}
	cout << total << endl;
	return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:80:1: error: a function-definition is not allowed here before '{' token
   80 | {
      | ^
a.cc:96:1: error: a function-definition is not allowed here before '{' token
   96 | {
      | ^
a.cc:105:1: error: a function-definition is not allowed here before '{' token
  105 | {
      | ^
a.cc:118:9: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
  118 | int main()
      |         ^~
a.cc:118:9: note: remove parentheses to default-initialize a variable
  118 | int main()
      |         ^~
      |         --
a.cc:118:9: note: or replace parentheses with braces to value-initialize a variable
a.cc:119:1: error: a function-definition is not allowed here before '{' token
  119 | {
      | ^