Skip to content

Commit a58b1b7

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

File tree

4 files changed

+41
-30
lines changed

4 files changed

+41
-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: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ class inline_or_executor
219219
return asio::query(executor_, p);
220220
}
221221

222+
#if 0
222223
/// Obtain an executor with the @c blocking.possibly property.
223224
/**
224225
* Do not call this function directly. It is intended for use with the
@@ -231,7 +232,7 @@ class inline_or_executor
231232
*/
232233
inline_or_executor<Executor, execution::blocking_t::possibly_t,
233234
InlineExceptionHandling>
234-
require(execution::blocking_t::possibly_t) const noexcept
235+
require(const execution::blocking_t::possibly_t&) const noexcept
235236
{
236237
return inline_or_executor<Executor, execution::blocking_t::possibly_t,
237238
InlineExceptionHandling>(executor_);
@@ -249,7 +250,7 @@ class inline_or_executor
249250
*/
250251
inline_or_executor<Executor, execution::blocking_t::always_t,
251252
InlineExceptionHandling>
252-
require(execution::blocking_t::always_t) const noexcept
253+
require(const execution::blocking_t::always_t&) const noexcept
253254
{
254255
return inline_or_executor<Executor, execution::blocking_t::always_t,
255256
InlineExceptionHandling>(executor_);
@@ -265,16 +266,9 @@ class inline_or_executor
265266
* auto ex2 = asio::require(ex1,
266267
* asio::execution::blocking.never); @endcode
267268
*/
268-
template <typename Property>
269269
inline_or_executor<Executor, execution::blocking_t::never_t,
270270
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
271+
require(const execution::blocking_t::never_t&) const noexcept
278272
{
279273
return inline_or_executor<Executor, execution::blocking_t::never_t,
280274
InlineExceptionHandling>(executor_);
@@ -293,7 +287,8 @@ class inline_or_executor
293287
*/
294288
inline_or_executor<Executor, Blocking,
295289
execution::inline_exception_handling_t::propagate_t>
296-
require(execution::inline_exception_handling_t::propagate_t) const noexcept
290+
require(const execution::inline_exception_handling_t::propagate_t&)
291+
const noexcept
297292
{
298293
return inline_or_executor<Executor, Blocking,
299294
execution::inline_exception_handling_t::propagate_t>(executor_);
@@ -311,8 +306,9 @@ class inline_or_executor
311306
* asio::execution::inline_exception_handling.terminate); @endcode
312307
*/
313308
inline_or_executor<Executor, Blocking,
314-
execution::inline_exception_handling_t::propagate_t>
315-
require(execution::inline_exception_handling_t::terminate_t) const noexcept
309+
execution::inline_exception_handling_t::terminate_t>
310+
require(const execution::inline_exception_handling_t::terminate_t&)
311+
const noexcept
316312
{
317313
return inline_or_executor<Executor, Blocking,
318314
execution::inline_exception_handling_t::terminate_t>(executor_);
@@ -329,24 +325,30 @@ class inline_or_executor
329325
* asio::execution::relationship.continuation); @endcode
330326
*/
331327
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
328+
constraint_t<
329+
//can_require<const Executor&, Property>::value
330+
/*&& !is_convertible<Property,
331+
execution::blocking_t>::value
332+
&& !is_convertible<Property,
333+
execution::inline_exception_handling_t>::value,*/
334+
!is_same<Property, execution::blocking_t::never_t>::value,
335+
inline_or_executor<decay_t<require_result_t<const Executor&, Property>>,
336+
Blocking, InlineExceptionHandling>
337+
>
338+
require(const Property& p) const
344339
noexcept(is_nothrow_require<const Executor&, Property>::value)
345340
{
346341
return inline_or_executor<
347342
decay_t<require_result_t<const Executor&, Property>>,
348343
Blocking, InlineExceptionHandling>(asio::require(executor_, p));
349344
}
345+
#endif
346+
347+
template <typename Property>
348+
inline_or_executor<decay_t<require_result_t<const Executor&, Property>>,
349+
Blocking, InlineExceptionHandling>
350+
require(const Property& p) const
351+
noexcept(is_nothrow_require<const Executor&, Property>::value);
350352

351353
/// Forward a preference to the underlying executor.
352354
/**

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)