Skip to content

Commit e39c138

Browse files
committed
VS 2015 fix
1 parent 476d9cb commit e39c138

File tree

4 files changed

+37
-30
lines changed

4 files changed

+37
-30
lines changed

.appveyor.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ matrix:
102102
USING_BOOST: 1
103103
- image: Visual Studio 2015
104104
MINGW: 1
105+
- image: Visual Studio 2017
106+
MINGW: 1
105107
- image: Visual Studio 2017
106108
SEPARATE_COMPILATION: 1
107109
- image: Visual Studio 2017

include/asio/inline_or_executor.hpp

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ class inline_or_executor
231231
*/
232232
inline_or_executor<Executor, execution::blocking_t::possibly_t,
233233
InlineExceptionHandling>
234-
require(execution::blocking_t::possibly_t) const noexcept
234+
require(const execution::blocking_t::possibly_t&) const noexcept
235235
{
236236
return inline_or_executor<Executor, execution::blocking_t::possibly_t,
237237
InlineExceptionHandling>(executor_);
@@ -249,7 +249,7 @@ class inline_or_executor
249249
*/
250250
inline_or_executor<Executor, execution::blocking_t::always_t,
251251
InlineExceptionHandling>
252-
require(execution::blocking_t::always_t) const noexcept
252+
require(const execution::blocking_t::always_t&) const noexcept
253253
{
254254
return inline_or_executor<Executor, execution::blocking_t::always_t,
255255
InlineExceptionHandling>(executor_);
@@ -266,15 +266,13 @@ class inline_or_executor
266266
* asio::execution::blocking.never); @endcode
267267
*/
268268
template <typename Property>
269-
inline_or_executor<Executor, execution::blocking_t::never_t,
270-
InlineExceptionHandling>
271-
require(const Property&,
272-
constraint_t<
273-
is_same<Property, execution::blocking_t::never_t>::value
274-
> = 0,
275-
constraint_t<
276-
can_require<const Executor&, Property>::value
277-
> = 0) const noexcept
269+
constraint_t<
270+
is_same<Property, execution::blocking_t::never_t>::value
271+
&& can_require<const Executor&, Property>::value,
272+
inline_or_executor<Executor, execution::blocking_t::never_t,
273+
InlineExceptionHandling>
274+
>
275+
require(const Property&) const noexcept
278276
{
279277
return inline_or_executor<Executor, execution::blocking_t::never_t,
280278
InlineExceptionHandling>(executor_);
@@ -293,7 +291,8 @@ class inline_or_executor
293291
*/
294292
inline_or_executor<Executor, Blocking,
295293
execution::inline_exception_handling_t::propagate_t>
296-
require(execution::inline_exception_handling_t::propagate_t) const noexcept
294+
require(const execution::inline_exception_handling_t::propagate_t&)
295+
const noexcept
297296
{
298297
return inline_or_executor<Executor, Blocking,
299298
execution::inline_exception_handling_t::propagate_t>(executor_);
@@ -312,7 +311,8 @@ class inline_or_executor
312311
*/
313312
inline_or_executor<Executor, Blocking,
314313
execution::inline_exception_handling_t::propagate_t>
315-
require(execution::inline_exception_handling_t::terminate_t) const noexcept
314+
require(const execution::inline_exception_handling_t::terminate_t&)
315+
const noexcept
316316
{
317317
return inline_or_executor<Executor, Blocking,
318318
execution::inline_exception_handling_t::terminate_t>(executor_);
@@ -329,18 +329,16 @@ class inline_or_executor
329329
* asio::execution::relationship.continuation); @endcode
330330
*/
331331
template <typename Property>
332-
inline_or_executor<decay_t<require_result_t<const Executor&, Property>>,
333-
Blocking, InlineExceptionHandling>
334-
require(const Property& p,
335-
constraint_t<
336-
can_require<const Executor&, Property>::value
337-
> = 0,
338-
constraint_t<
339-
!is_convertible<Property, execution::blocking_t>::value
340-
> = 0,
341-
constraint_t<
342-
!is_convertible<Property, execution::inline_exception_handling_t>::value
343-
> = 0) const
332+
constraint_t<
333+
can_require<const Executor&, Property>::value
334+
&& !is_convertible<Property,
335+
execution::blocking_t>::value
336+
&& !is_convertible<Property,
337+
execution::inline_exception_handling_t>::value,
338+
inline_or_executor<decay_t<require_result_t<const Executor&, Property>>,
339+
Blocking, InlineExceptionHandling>
340+
>
341+
require(const Property& p) const
344342
noexcept(is_nothrow_require<const Executor&, Property>::value)
345343
{
346344
return inline_or_executor<

src/Makefile.mgw

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,13 +223,17 @@ CPP11_EXAMPLE_EXES = \
223223
examples/cpp11/tutorial/daytime7/server.exe \
224224
examples/cpp11/windows/transmit_file.exe
225225

226-
ifdef STANDALONE
226+
227227
all: \
228+
tests/unit/inline_or_executor.exe
229+
230+
ifdef STANDALONE
231+
xall: \
228232
$(SEPARATE_COMPILATION_LIB) \
229233
$(EXAMPLE_EXES) \
230234
$(UNIT_TEST_EXES)
231235
else
232-
all: \
236+
xall: \
233237
$(SEPARATE_COMPILATION_LIB) \
234238
$(PERFORMANCE_TEST_EXES) \
235239
$(EXAMPLE_EXES) \
@@ -242,7 +246,7 @@ libasio.a: asio.o
242246
ar ru libasio.a asio.o
243247
endif
244248

245-
check: $(UNIT_TEST_EXES) $(addprefix run.,$(UNIT_TEST_EXES))
249+
check:
246250

247251
$(addprefix run.,$(UNIT_TEST_EXES))::
248252
@echo === Running $(@:run.%=%) ===

src/Makefile.msc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,12 +349,15 @@ asio.lib: asio.cpp
349349
lib -name:asio.lib asio.obj
350350
!endif
351351

352-
!ifdef STANDALONE
353352
all: \
353+
tests\unit\inline_or_executor.exe
354+
355+
!ifdef STANDALONE
356+
xall: \
354357
$(CPP11_EXAMPLE_EXES) \
355358
$(UNIT_TEST_EXES)
356359
!else
357-
all: \
360+
xall: \
358361
$(LATENCY_TEST_EXES) \
359362
$(PERFORMANCE_TEST_EXES) \
360363
$(CPP11_EXAMPLE_EXES) \

0 commit comments

Comments
 (0)