Opened 11 years ago
Closed 11 years ago
#5722 closed Bugs (fixed)
Compilation error when boost/signals.hpp is included before asio.hpp
Reported by: | anonymous | Owned by: | chris_kohlhoff |
---|---|---|---|
Milestone: | To Be Determined | Component: | asio |
Version: | Boost 1.47.0 | Severity: | Problem |
Keywords: | Cc: |
Description
On the mailinglist it has been discovered, that including boost/signals.hpp
before boost/asio.hpp
causes a compile error in asio/detail/impl/signal_set_service.ipp:74
saying "boost::signal": use of class template requires template argument list.
The following testcase has been used to confirm this under MSVC10:
#include <boost/signals.hpp> #include <boost/asio.hpp> int main(int argc, char **argv) { return 0; }
Igor R provided the following patch for boost\asio\detail\impl\signal_set_service.ipp:71
:
- signal(signal_number, asio_signal_handler); + ::signal(signal_number, asio_signal_handler);
Change History (2)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [74863]) Merge from trunk...
Fix compile error in regex overload of async_read_until.hpp. Fixes #5688
Explicitly specify the signal() function from the global namespace. Fixes #5722
Don't read the clock unless the heap is non-empty.
Change the SSL buffers sizes so that they're large enough to hold a complete TLS record. Fixes #5854
Make sure the synchronous null_buffers operations obey the user's non_blocking setting. Fixes #5756
Set size of select fd_set at runtime when using Windows.
Disable warning due to const qualifier being applied to function type.
Fix crash due to gcc_x86_fenced_block that shows up when using the Intel C++ compiler. Fixes #5763
Specialise operations for buffer sequences that are arrays of exactly two buffers.
Initialise all OpenSSL algorithms.
Fix error mapping when session is gracefully shut down.
Various performance improvements:
- Split the task_io_service's run and poll code.
- Use thread-local operation queues in single-threaded use cases (i.e. concurrency_hint is 1) to eliminate a lock/unlock pair.
- Only fence block exit when a handler is being run directly out of the io_service.
- Prefer x86 mfence-based fenced block when available.
- Use a plain ol' long for the atomic_count when all thread support is disabled.
- Allow some epoll_reactor speculative operations to be performed without holding the lock.
- Improve locality of reference by performing an epoll_reactor's I/O operation immediately before the corresponding handler is called. This also improves scalability across CPUs when multiple threads are running the io_service.
- Pass same error_code variable through to each operation's complete() function.
- Optimise creation of and access to the io_service implementation.
Remove unused state in HTTP server examples.
Add latency test programs.
(In [74815]) Explicitly specify the signal() function from the global namespace. Refs #5722