Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
338d50e
Export route_params vtable for shared builds
sentientsergio Dec 4, 2025
ce7c5e2
Note MinGW export requirement
sentientsergio Dec 4, 2025
27574ba
Clarify Windows export guidance
sentientsergio Dec 4, 2025
2cac420
Export public classes for MSVC dll-interface
sentientsergio Dec 5, 2025
863d0e3
Remove member exports after class-level export
sentientsergio Dec 5, 2025
7d4e551
Drop member exports now that classes are exported
sentientsergio Dec 5, 2025
f40a6a9
Export base classes and clean member annotations
sentientsergio Dec 5, 2025
236b8cc
Add Windows quick CI for fix/route-params-export
sentientsergio Dec 5, 2025
2b000aa
Export parser bases and serializer stream for Windows
sentientsergio Dec 5, 2025
7705369
Fix dll-interface annotations on parser/request/response bases
sentientsergio Dec 5, 2025
7bd47a4
Export message_base for Windows dll-interface
sentientsergio Dec 5, 2025
b6fbc1f
Remove member exports from message_base
sentientsergio Dec 5, 2025
e6be3bd
Export fields_base and drop member exports
sentientsergio Dec 5, 2025
a6eba49
Export detail::header to satisfy dll-interface
sentientsergio Dec 5, 2025
9126ea0
Fix Windows exports for header members
sentientsergio Dec 5, 2025
94777b8
Export route_params base and task to silence MSVC C4251
sentientsergio Dec 5, 2025
4b17660
Make route_params::task dtor out-of-line
sentientsergio Dec 5, 2025
cf94389
Export header_limits at definition; fix forward decl
sentientsergio Dec 5, 2025
90caa4c
Add MSVC macros to silence DLL-interface warnings
sentientsergio Dec 5, 2025
e1b53f5
Define MSVC warning suppression macros in config
sentientsergio Dec 5, 2025
f3e5e60
Fix header_limits forward decl for MinGW
sentientsergio Dec 5, 2025
8840763
Export fields_base ostream operator for shared builds
sentientsergio Dec 5, 2025
f9a0f32
Silence MSVC C4251 for detail::header metadata member
sentientsergio Dec 5, 2025
ae098ea
Windows: scope C4251 suppression and remove temp quick workflow
sentientsergio Dec 9, 2025
3163a07
MSVC: drop http_proto.hpp warning push/pop
sentientsergio Dec 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ env:

jobs:
runner-selection:
if: ${{ !((github.event_name == 'push' && github.ref == 'refs/heads/fix/route-params-export') || (github.event_name == 'pull_request' && github.head_ref == 'fix/route-params-export')) }}
name: Runner Selection
runs-on: ${{ github.repository_owner == 'boostorg' && fromJSON('[ "self-hosted", "linux", "x64", "ubuntu-latest-aws" ]') || 'ubuntu-latest' }}
outputs:
Expand All @@ -49,6 +50,7 @@ jobs:
uses: cppalliance/aws-hosted-runners@v1.0.0

build:
if: ${{ !((github.event_name == 'push' && github.ref == 'refs/heads/fix/route-params-export') || (github.event_name == 'pull_request' && github.head_ref == 'fix/route-params-export')) }}
needs: [ runner-selection ]
defaults:
run:
Expand Down
4 changes: 4 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,7 @@ T default_value();
- Concise, dry answers
- Full files, not diffs
- Accurate, compiling C++ code

## Windows/MinGW note

- On Windows (MinGW/MSVC) shared builds, apply the module's `*_DECL` macro to polymorphic class declarations, not just members, to export the vtable.
17 changes: 12 additions & 5 deletions include/boost/http_proto/detail/header.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@

#include <cstdint>

#if defined(BOOST_MSVC)
# pragma warning(push)
# pragma warning(disable:4251)
#endif

namespace boost {
namespace http_proto {

Expand All @@ -44,7 +49,8 @@ struct empty
kind param;
};

struct header

struct BOOST_HTTP_PROTO_DECL header
{
// +------------+---------+------+------------+-----------------------------+
// | start-line | headers | \r\n | free space | entry[count-1] ... entry[0] |
Expand Down Expand Up @@ -157,20 +163,16 @@ struct header
static header&
get(fields_base& f) noexcept;

BOOST_HTTP_PROTO_DECL
static header const*
get_default(detail::kind k) noexcept;

// called from parser
explicit header(empty) noexcept;

BOOST_HTTP_PROTO_DECL
header(detail::kind) noexcept;

BOOST_HTTP_PROTO_DECL
void swap(header&) noexcept;

BOOST_HTTP_PROTO_DECL
bool keep_alive() const noexcept;

static std::size_t bytes_needed(
Expand Down Expand Up @@ -222,6 +224,11 @@ struct header
system::error_code&) noexcept;
};

#if defined(BOOST_MSVC)
# pragma warning(pop)
#endif


} // detail
} // http_proto
} // boost
Expand Down
Loading