boostorg / boostorg/json

Empty tuple conversion fails to compile

Open
#1,196 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
479
Forks
110
Avg merge
10d 3h
Merged PRs (30d)
5

Description

Automatic conversion between std::tuple<> and boost::json::value does not work.
The code

```
std::tuple<> t0;
boost::json::value v = boost::json::value_from(t0);
std::tuple<> t1 = boost::json::value_to>(v);
```

fails to compile with the error message

`static assertion failed: 'No suitable tag_invoke overload found for the type'`.

This seems counterintuitive. Obviously an empty C++ tuple should be converted to an empty JSON array and vice-versa.

Tested with Boost 1.92.0 and Visual Studio 2026 on Windows 11.

Contributor guide

Open the contributing guide

Research direction

Start with the minimal std::tuple<> example and trace the value_from and value_to entry points for tuple conversion. Add a regression test covering conversion to an empty JSON array and back to std::tuple<>, then confirm the example compiles and round-trips successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
api
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.