Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Side by Side Diff: Source/wtf/Functional.h

Issue 604843002: Replace OVERRIDE and FINAL with their C++11 counterparts in WTF (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Keep the mechanical part only Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/wtf/Float64Array.h ('k') | Source/wtf/Int16Array.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 template<typename R, typename A1, typename A2, typename A3, typename A4, typenam e A5, typename A6> 418 template<typename R, typename A1, typename A2, typename A3, typename A4, typenam e A5, typename A6>
419 class FunctionImpl<R(A1, A2, A3, A4, A5, A6)> : public FunctionImplBase { 419 class FunctionImpl<R(A1, A2, A3, A4, A5, A6)> : public FunctionImplBase {
420 public: 420 public:
421 virtual R operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) = 0; 421 virtual R operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) = 0;
422 }; 422 };
423 423
424 template<typename FunctionWrapper, typename FunctionType> 424 template<typename FunctionWrapper, typename FunctionType>
425 class UnboundFunctionImpl; 425 class UnboundFunctionImpl;
426 426
427 template<typename FunctionWrapper, typename R, typename P1> 427 template<typename FunctionWrapper, typename R, typename P1>
428 class UnboundFunctionImpl<FunctionWrapper, R(P1)> FINAL : public FunctionImpl<ty pename FunctionWrapper::ResultType(P1)> { 428 class UnboundFunctionImpl<FunctionWrapper, R(P1)> final : public FunctionImpl<ty pename FunctionWrapper::ResultType(P1)> {
429 public: 429 public:
430 UnboundFunctionImpl(FunctionWrapper functionWrapper) 430 UnboundFunctionImpl(FunctionWrapper functionWrapper)
431 : m_functionWrapper(functionWrapper) 431 : m_functionWrapper(functionWrapper)
432 { 432 {
433 } 433 }
434 434
435 virtual typename FunctionWrapper::ResultType operator()(P1 p1) OVERRIDE 435 virtual typename FunctionWrapper::ResultType operator()(P1 p1) override
436 { 436 {
437 return m_functionWrapper(p1); 437 return m_functionWrapper(p1);
438 } 438 }
439 439
440 private: 440 private:
441 FunctionWrapper m_functionWrapper; 441 FunctionWrapper m_functionWrapper;
442 }; 442 };
443 443
444 template<typename FunctionWrapper, typename R, typename P1, typename P2> 444 template<typename FunctionWrapper, typename R, typename P1, typename P2>
445 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2)> FINAL : public FunctionImp l<typename FunctionWrapper::ResultType(P1, P2)> { 445 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2)> final : public FunctionImp l<typename FunctionWrapper::ResultType(P1, P2)> {
446 public: 446 public:
447 UnboundFunctionImpl(FunctionWrapper functionWrapper) 447 UnboundFunctionImpl(FunctionWrapper functionWrapper)
448 : m_functionWrapper(functionWrapper) 448 : m_functionWrapper(functionWrapper)
449 { 449 {
450 } 450 }
451 451
452 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2) OVERRI DE 452 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2) overri de
453 { 453 {
454 return m_functionWrapper(p1, p2); 454 return m_functionWrapper(p1, p2);
455 } 455 }
456 456
457 private: 457 private:
458 FunctionWrapper m_functionWrapper; 458 FunctionWrapper m_functionWrapper;
459 }; 459 };
460 460
461 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3> 461 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3>
462 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2, P3)> FINAL : public Functio nImpl<typename FunctionWrapper::ResultType(P1, P2, P3)> { 462 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2, P3)> final : public Functio nImpl<typename FunctionWrapper::ResultType(P1, P2, P3)> {
463 public: 463 public:
464 UnboundFunctionImpl(FunctionWrapper functionWrapper) 464 UnboundFunctionImpl(FunctionWrapper functionWrapper)
465 : m_functionWrapper(functionWrapper) 465 : m_functionWrapper(functionWrapper)
466 { 466 {
467 } 467 }
468 468
469 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2, P3 p3) OVERRIDE 469 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2, P3 p3) override
470 { 470 {
471 return m_functionWrapper(p1, p2, p3); 471 return m_functionWrapper(p1, p2, p3);
472 } 472 }
473 473
474 private: 474 private:
475 FunctionWrapper m_functionWrapper; 475 FunctionWrapper m_functionWrapper;
476 }; 476 };
477 477
478 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4> 478 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4>
479 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> FINAL : public Fun ctionImpl<typename FunctionWrapper::ResultType(P1, P2, P3, P4)> { 479 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> final : public Fun ctionImpl<typename FunctionWrapper::ResultType(P1, P2, P3, P4)> {
480 public: 480 public:
481 UnboundFunctionImpl(FunctionWrapper functionWrapper) 481 UnboundFunctionImpl(FunctionWrapper functionWrapper)
482 : m_functionWrapper(functionWrapper) 482 : m_functionWrapper(functionWrapper)
483 { 483 {
484 } 484 }
485 485
486 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2, P3 p3, P4 p4) OVERRIDE 486 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2, P3 p3, P4 p4) override
487 { 487 {
488 return m_functionWrapper(p1, p2, p3, p4); 488 return m_functionWrapper(p1, p2, p3, p4);
489 } 489 }
490 490
491 private: 491 private:
492 FunctionWrapper m_functionWrapper; 492 FunctionWrapper m_functionWrapper;
493 }; 493 };
494 494
495 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5> 495 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5>
496 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> FINAL : public FunctionImpl<typename FunctionWrapper::ResultType(P1, P2, P3, P4, P5)> { 496 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> final : public FunctionImpl<typename FunctionWrapper::ResultType(P1, P2, P3, P4, P5)> {
497 public: 497 public:
498 UnboundFunctionImpl(FunctionWrapper functionWrapper) 498 UnboundFunctionImpl(FunctionWrapper functionWrapper)
499 : m_functionWrapper(functionWrapper) 499 : m_functionWrapper(functionWrapper)
500 { 500 {
501 } 501 }
502 502
503 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) OVERRIDE 503 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) override
504 { 504 {
505 return m_functionWrapper(p1, p2, p3, p4, p5); 505 return m_functionWrapper(p1, p2, p3, p4, p5);
506 } 506 }
507 507
508 private: 508 private:
509 FunctionWrapper m_functionWrapper; 509 FunctionWrapper m_functionWrapper;
510 }; 510 };
511 511
512 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6> 512 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6>
513 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> FINAL : pu blic FunctionImpl<typename FunctionWrapper::ResultType(P1, P2, P3, P4, P5, P6)> { 513 class UnboundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> final : pu blic FunctionImpl<typename FunctionWrapper::ResultType(P1, P2, P3, P4, P5, P6)> {
514 public: 514 public:
515 UnboundFunctionImpl(FunctionWrapper functionWrapper) 515 UnboundFunctionImpl(FunctionWrapper functionWrapper)
516 : m_functionWrapper(functionWrapper) 516 : m_functionWrapper(functionWrapper)
517 { 517 {
518 } 518 }
519 519
520 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) OVERRIDE 520 virtual typename FunctionWrapper::ResultType operator()(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) override
521 { 521 {
522 return m_functionWrapper(p1, p2, p3, p4, p5, p6); 522 return m_functionWrapper(p1, p2, p3, p4, p5, p6);
523 } 523 }
524 524
525 private: 525 private:
526 FunctionWrapper m_functionWrapper; 526 FunctionWrapper m_functionWrapper;
527 }; 527 };
528 528
529 template<typename FunctionWrapper, typename FunctionType> 529 template<typename FunctionWrapper, typename FunctionType>
530 class OneArgPartBoundFunctionImpl; 530 class OneArgPartBoundFunctionImpl;
531 531
532 template<typename FunctionWrapper, typename R, typename P1, typename P2> 532 template<typename FunctionWrapper, typename R, typename P1, typename P2>
533 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2)> FINAL : public Fun ctionImpl<typename FunctionWrapper::ResultType(P2)> { 533 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2)> final : public Fun ctionImpl<typename FunctionWrapper::ResultType(P2)> {
534 public: 534 public:
535 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1) 535 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1)
536 : m_functionWrapper(functionWrapper) 536 : m_functionWrapper(functionWrapper)
537 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 537 , m_p1(ParamStorageTraits<P1>::wrap(p1))
538 { 538 {
539 } 539 }
540 540
541 virtual typename FunctionWrapper::ResultType operator()(P2 p2) OVERRIDE 541 virtual typename FunctionWrapper::ResultType operator()(P2 p2) override
542 { 542 {
543 return m_functionWrapper(m_p1, p2); 543 return m_functionWrapper(m_p1, p2);
544 } 544 }
545 545
546 private: 546 private:
547 FunctionWrapper m_functionWrapper; 547 FunctionWrapper m_functionWrapper;
548 typename ParamStorageTraits<P1>::StorageType m_p1; 548 typename ParamStorageTraits<P1>::StorageType m_p1;
549 }; 549 };
550 550
551 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3> 551 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3>
552 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3)> FINAL : public FunctionImpl<typename FunctionWrapper::ResultType(P2, P3)> { 552 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3)> final : public FunctionImpl<typename FunctionWrapper::ResultType(P2, P3)> {
553 public: 553 public:
554 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1) 554 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1)
555 : m_functionWrapper(functionWrapper) 555 : m_functionWrapper(functionWrapper)
556 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 556 , m_p1(ParamStorageTraits<P1>::wrap(p1))
557 { 557 {
558 } 558 }
559 559
560 virtual typename FunctionWrapper::ResultType operator()(P2 p2, P3 p3) OVERRI DE 560 virtual typename FunctionWrapper::ResultType operator()(P2 p2, P3 p3) overri de
561 { 561 {
562 return m_functionWrapper(m_p1, p2, p3); 562 return m_functionWrapper(m_p1, p2, p3);
563 } 563 }
564 564
565 private: 565 private:
566 FunctionWrapper m_functionWrapper; 566 FunctionWrapper m_functionWrapper;
567 typename ParamStorageTraits<P1>::StorageType m_p1; 567 typename ParamStorageTraits<P1>::StorageType m_p1;
568 }; 568 };
569 569
570 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4> 570 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4>
571 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> FINAL : pu blic FunctionImpl<typename FunctionWrapper::ResultType(P2, P3, P4)> { 571 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> final : pu blic FunctionImpl<typename FunctionWrapper::ResultType(P2, P3, P4)> {
572 public: 572 public:
573 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1) 573 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1)
574 : m_functionWrapper(functionWrapper) 574 : m_functionWrapper(functionWrapper)
575 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 575 , m_p1(ParamStorageTraits<P1>::wrap(p1))
576 { 576 {
577 } 577 }
578 578
579 virtual typename FunctionWrapper::ResultType operator()(P2 p2, P3 p3, P4 p4) OVERRIDE 579 virtual typename FunctionWrapper::ResultType operator()(P2 p2, P3 p3, P4 p4) override
580 { 580 {
581 return m_functionWrapper(m_p1, p2, p3, p4); 581 return m_functionWrapper(m_p1, p2, p3, p4);
582 } 582 }
583 583
584 private: 584 private:
585 FunctionWrapper m_functionWrapper; 585 FunctionWrapper m_functionWrapper;
586 typename ParamStorageTraits<P1>::StorageType m_p1; 586 typename ParamStorageTraits<P1>::StorageType m_p1;
587 }; 587 };
588 588
589 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5> 589 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5>
590 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> FINAL : public FunctionImpl<typename FunctionWrapper::ResultType(P2, P3, P4, P5)> { 590 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> final : public FunctionImpl<typename FunctionWrapper::ResultType(P2, P3, P4, P5)> {
591 public: 591 public:
592 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1) 592 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1)
593 : m_functionWrapper(functionWrapper) 593 : m_functionWrapper(functionWrapper)
594 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 594 , m_p1(ParamStorageTraits<P1>::wrap(p1))
595 { 595 {
596 } 596 }
597 597
598 virtual typename FunctionWrapper::ResultType operator()(P2 p2, P3 p3, P4 p4, P5 p5) OVERRIDE 598 virtual typename FunctionWrapper::ResultType operator()(P2 p2, P3 p3, P4 p4, P5 p5) override
599 { 599 {
600 return m_functionWrapper(m_p1, p2, p3, p4, p5); 600 return m_functionWrapper(m_p1, p2, p3, p4, p5);
601 } 601 }
602 602
603 private: 603 private:
604 FunctionWrapper m_functionWrapper; 604 FunctionWrapper m_functionWrapper;
605 typename ParamStorageTraits<P1>::StorageType m_p1; 605 typename ParamStorageTraits<P1>::StorageType m_p1;
606 }; 606 };
607 607
608 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6> 608 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6>
609 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> FI NAL : public FunctionImpl<typename FunctionWrapper::ResultType(P2, P3, P4, P5, P 6)> { 609 class OneArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> fi nal : public FunctionImpl<typename FunctionWrapper::ResultType(P2, P3, P4, P5, P 6)> {
610 public: 610 public:
611 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1) 611 OneArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1)
612 : m_functionWrapper(functionWrapper) 612 : m_functionWrapper(functionWrapper)
613 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 613 , m_p1(ParamStorageTraits<P1>::wrap(p1))
614 { 614 {
615 } 615 }
616 616
617 virtual typename FunctionWrapper::ResultType operator()(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) OVERRIDE 617 virtual typename FunctionWrapper::ResultType operator()(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) override
618 { 618 {
619 return m_functionWrapper(m_p1, p2, p3, p4, p5, p6); 619 return m_functionWrapper(m_p1, p2, p3, p4, p5, p6);
620 } 620 }
621 621
622 private: 622 private:
623 FunctionWrapper m_functionWrapper; 623 FunctionWrapper m_functionWrapper;
624 typename ParamStorageTraits<P1>::StorageType m_p1; 624 typename ParamStorageTraits<P1>::StorageType m_p1;
625 }; 625 };
626 626
627 template<typename FunctionWrapper, typename FunctionType> 627 template<typename FunctionWrapper, typename FunctionType>
628 class TwoArgPartBoundFunctionImpl; 628 class TwoArgPartBoundFunctionImpl;
629 629
630 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3> 630 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3>
631 class TwoArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3)> FINAL : public FunctionImpl<typename FunctionWrapper::ResultType(P3)> { 631 class TwoArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3)> final : public FunctionImpl<typename FunctionWrapper::ResultType(P3)> {
632 public: 632 public:
633 TwoArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, c onst P2& p2) 633 TwoArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, c onst P2& p2)
634 : m_functionWrapper(functionWrapper) 634 : m_functionWrapper(functionWrapper)
635 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 635 , m_p1(ParamStorageTraits<P1>::wrap(p1))
636 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 636 , m_p2(ParamStorageTraits<P2>::wrap(p2))
637 { 637 {
638 } 638 }
639 639
640 virtual typename FunctionWrapper::ResultType operator()(P3 p3) OVERRIDE 640 virtual typename FunctionWrapper::ResultType operator()(P3 p3) override
641 { 641 {
642 return m_functionWrapper(m_p1, m_p2, p3); 642 return m_functionWrapper(m_p1, m_p2, p3);
643 } 643 }
644 644
645 private: 645 private:
646 FunctionWrapper m_functionWrapper; 646 FunctionWrapper m_functionWrapper;
647 typename ParamStorageTraits<P1>::StorageType m_p1; 647 typename ParamStorageTraits<P1>::StorageType m_p1;
648 typename ParamStorageTraits<P2>::StorageType m_p2; 648 typename ParamStorageTraits<P2>::StorageType m_p2;
649 }; 649 };
650 650
651 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4> 651 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4>
652 class TwoArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> FINAL : pu blic FunctionImpl<typename FunctionWrapper::ResultType(P3, P4)> { 652 class TwoArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> final : pu blic FunctionImpl<typename FunctionWrapper::ResultType(P3, P4)> {
653 public: 653 public:
654 TwoArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, c onst P2& p2) 654 TwoArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, c onst P2& p2)
655 : m_functionWrapper(functionWrapper) 655 : m_functionWrapper(functionWrapper)
656 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 656 , m_p1(ParamStorageTraits<P1>::wrap(p1))
657 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 657 , m_p2(ParamStorageTraits<P2>::wrap(p2))
658 { 658 {
659 } 659 }
660 660
661 virtual typename FunctionWrapper::ResultType operator()(P3 p3, P4 p4) OVERRI DE 661 virtual typename FunctionWrapper::ResultType operator()(P3 p3, P4 p4) overri de
662 { 662 {
663 return m_functionWrapper(m_p1, m_p2, p3, p4); 663 return m_functionWrapper(m_p1, m_p2, p3, p4);
664 } 664 }
665 665
666 private: 666 private:
667 FunctionWrapper m_functionWrapper; 667 FunctionWrapper m_functionWrapper;
668 typename ParamStorageTraits<P1>::StorageType m_p1; 668 typename ParamStorageTraits<P1>::StorageType m_p1;
669 typename ParamStorageTraits<P2>::StorageType m_p2; 669 typename ParamStorageTraits<P2>::StorageType m_p2;
670 }; 670 };
671 671
672 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5> 672 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5>
673 class TwoArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> FINAL : public FunctionImpl<typename FunctionWrapper::ResultType(P3, P4, P5)> { 673 class TwoArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> final : public FunctionImpl<typename FunctionWrapper::ResultType(P3, P4, P5)> {
674 public: 674 public:
675 TwoArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, c onst P2& p2) 675 TwoArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, c onst P2& p2)
676 : m_functionWrapper(functionWrapper) 676 : m_functionWrapper(functionWrapper)
677 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 677 , m_p1(ParamStorageTraits<P1>::wrap(p1))
678 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 678 , m_p2(ParamStorageTraits<P2>::wrap(p2))
679 { 679 {
680 } 680 }
681 681
682 virtual typename FunctionWrapper::ResultType operator()(P3 p3, P4 p4, P5 p5) OVERRIDE 682 virtual typename FunctionWrapper::ResultType operator()(P3 p3, P4 p4, P5 p5) override
683 { 683 {
684 return m_functionWrapper(m_p1, m_p2, p3, p4, p5); 684 return m_functionWrapper(m_p1, m_p2, p3, p4, p5);
685 } 685 }
686 686
687 private: 687 private:
688 FunctionWrapper m_functionWrapper; 688 FunctionWrapper m_functionWrapper;
689 typename ParamStorageTraits<P1>::StorageType m_p1; 689 typename ParamStorageTraits<P1>::StorageType m_p1;
690 typename ParamStorageTraits<P2>::StorageType m_p2; 690 typename ParamStorageTraits<P2>::StorageType m_p2;
691 }; 691 };
692 692
693 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6> 693 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6>
694 class TwoArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> FI NAL : public FunctionImpl<typename FunctionWrapper::ResultType(P3, P4, P5, P6)> { 694 class TwoArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> fi nal : public FunctionImpl<typename FunctionWrapper::ResultType(P3, P4, P5, P6)> {
695 public: 695 public:
696 TwoArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, c onst P2& p2) 696 TwoArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, c onst P2& p2)
697 : m_functionWrapper(functionWrapper) 697 : m_functionWrapper(functionWrapper)
698 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 698 , m_p1(ParamStorageTraits<P1>::wrap(p1))
699 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 699 , m_p2(ParamStorageTraits<P2>::wrap(p2))
700 { 700 {
701 } 701 }
702 702
703 virtual typename FunctionWrapper::ResultType operator()(P3 p3, P4 p4, P5 p5, P6 p6) OVERRIDE 703 virtual typename FunctionWrapper::ResultType operator()(P3 p3, P4 p4, P5 p5, P6 p6) override
704 { 704 {
705 return m_functionWrapper(m_p1, m_p2, p3, p4, p5, p6); 705 return m_functionWrapper(m_p1, m_p2, p3, p4, p5, p6);
706 } 706 }
707 707
708 private: 708 private:
709 FunctionWrapper m_functionWrapper; 709 FunctionWrapper m_functionWrapper;
710 typename ParamStorageTraits<P1>::StorageType m_p1; 710 typename ParamStorageTraits<P1>::StorageType m_p1;
711 typename ParamStorageTraits<P2>::StorageType m_p2; 711 typename ParamStorageTraits<P2>::StorageType m_p2;
712 }; 712 };
713 713
714 template<typename FunctionWrapper, typename FunctionType> 714 template<typename FunctionWrapper, typename FunctionType>
715 class ThreeArgPartBoundFunctionImpl; 715 class ThreeArgPartBoundFunctionImpl;
716 716
717 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4> 717 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4>
718 class ThreeArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> FINAL : public FunctionImpl<typename FunctionWrapper::ResultType(P4)> { 718 class ThreeArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> final : public FunctionImpl<typename FunctionWrapper::ResultType(P4)> {
719 public: 719 public:
720 ThreeArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3) 720 ThreeArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3)
721 : m_functionWrapper(functionWrapper) 721 : m_functionWrapper(functionWrapper)
722 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 722 , m_p1(ParamStorageTraits<P1>::wrap(p1))
723 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 723 , m_p2(ParamStorageTraits<P2>::wrap(p2))
724 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 724 , m_p3(ParamStorageTraits<P3>::wrap(p3))
725 { 725 {
726 } 726 }
727 727
728 virtual typename FunctionWrapper::ResultType operator()(P4 p4) OVERRIDE 728 virtual typename FunctionWrapper::ResultType operator()(P4 p4) override
729 { 729 {
730 return m_functionWrapper(m_p1, m_p2, m_p3, p4); 730 return m_functionWrapper(m_p1, m_p2, m_p3, p4);
731 } 731 }
732 732
733 private: 733 private:
734 FunctionWrapper m_functionWrapper; 734 FunctionWrapper m_functionWrapper;
735 typename ParamStorageTraits<P1>::StorageType m_p1; 735 typename ParamStorageTraits<P1>::StorageType m_p1;
736 typename ParamStorageTraits<P2>::StorageType m_p2; 736 typename ParamStorageTraits<P2>::StorageType m_p2;
737 typename ParamStorageTraits<P3>::StorageType m_p3; 737 typename ParamStorageTraits<P3>::StorageType m_p3;
738 }; 738 };
739 739
740 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5> 740 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5>
741 class ThreeArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> FINA L : public FunctionImpl<typename FunctionWrapper::ResultType(P4, P5)> { 741 class ThreeArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> fina l : public FunctionImpl<typename FunctionWrapper::ResultType(P4, P5)> {
742 public: 742 public:
743 ThreeArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3) 743 ThreeArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3)
744 : m_functionWrapper(functionWrapper) 744 : m_functionWrapper(functionWrapper)
745 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 745 , m_p1(ParamStorageTraits<P1>::wrap(p1))
746 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 746 , m_p2(ParamStorageTraits<P2>::wrap(p2))
747 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 747 , m_p3(ParamStorageTraits<P3>::wrap(p3))
748 { 748 {
749 } 749 }
750 750
751 virtual typename FunctionWrapper::ResultType operator()(P4 p4, P5 p5) OVERRI DE 751 virtual typename FunctionWrapper::ResultType operator()(P4 p4, P5 p5) overri de
752 { 752 {
753 return m_functionWrapper(m_p1, m_p2, m_p3, p4, p5); 753 return m_functionWrapper(m_p1, m_p2, m_p3, p4, p5);
754 } 754 }
755 755
756 private: 756 private:
757 FunctionWrapper m_functionWrapper; 757 FunctionWrapper m_functionWrapper;
758 typename ParamStorageTraits<P1>::StorageType m_p1; 758 typename ParamStorageTraits<P1>::StorageType m_p1;
759 typename ParamStorageTraits<P2>::StorageType m_p2; 759 typename ParamStorageTraits<P2>::StorageType m_p2;
760 typename ParamStorageTraits<P3>::StorageType m_p3; 760 typename ParamStorageTraits<P3>::StorageType m_p3;
761 }; 761 };
762 762
763 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6> 763 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6>
764 class ThreeArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> FINAL : public FunctionImpl<typename FunctionWrapper::ResultType(P4, P5, P6)> { 764 class ThreeArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> final : public FunctionImpl<typename FunctionWrapper::ResultType(P4, P5, P6)> {
765 public: 765 public:
766 ThreeArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3) 766 ThreeArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3)
767 : m_functionWrapper(functionWrapper) 767 : m_functionWrapper(functionWrapper)
768 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 768 , m_p1(ParamStorageTraits<P1>::wrap(p1))
769 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 769 , m_p2(ParamStorageTraits<P2>::wrap(p2))
770 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 770 , m_p3(ParamStorageTraits<P3>::wrap(p3))
771 { 771 {
772 } 772 }
773 773
774 virtual typename FunctionWrapper::ResultType operator()(P4 p4, P5 p5, P6 p6) OVERRIDE 774 virtual typename FunctionWrapper::ResultType operator()(P4 p4, P5 p5, P6 p6) override
775 { 775 {
776 return m_functionWrapper(m_p1, m_p2, m_p3, p4, p5, p6); 776 return m_functionWrapper(m_p1, m_p2, m_p3, p4, p5, p6);
777 } 777 }
778 778
779 private: 779 private:
780 FunctionWrapper m_functionWrapper; 780 FunctionWrapper m_functionWrapper;
781 typename ParamStorageTraits<P1>::StorageType m_p1; 781 typename ParamStorageTraits<P1>::StorageType m_p1;
782 typename ParamStorageTraits<P2>::StorageType m_p2; 782 typename ParamStorageTraits<P2>::StorageType m_p2;
783 typename ParamStorageTraits<P3>::StorageType m_p3; 783 typename ParamStorageTraits<P3>::StorageType m_p3;
784 }; 784 };
785 785
786 template<typename FunctionWrapper, typename FunctionType> 786 template<typename FunctionWrapper, typename FunctionType>
787 class FourArgPartBoundFunctionImpl; 787 class FourArgPartBoundFunctionImpl;
788 788
789 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5> 789 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5>
790 class FourArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> FINAL : public FunctionImpl<typename FunctionWrapper::ResultType(P5)> { 790 class FourArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> final : public FunctionImpl<typename FunctionWrapper::ResultType(P5)> {
791 public: 791 public:
792 FourArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4) 792 FourArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4)
793 : m_functionWrapper(functionWrapper) 793 : m_functionWrapper(functionWrapper)
794 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 794 , m_p1(ParamStorageTraits<P1>::wrap(p1))
795 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 795 , m_p2(ParamStorageTraits<P2>::wrap(p2))
796 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 796 , m_p3(ParamStorageTraits<P3>::wrap(p3))
797 , m_p4(ParamStorageTraits<P4>::wrap(p4)) 797 , m_p4(ParamStorageTraits<P4>::wrap(p4))
798 { 798 {
799 } 799 }
800 800
801 virtual typename FunctionWrapper::ResultType operator()(P5 p5) OVERRIDE 801 virtual typename FunctionWrapper::ResultType operator()(P5 p5) override
802 { 802 {
803 return m_functionWrapper(m_p1, m_p2, m_p3, m_p4, p5); 803 return m_functionWrapper(m_p1, m_p2, m_p3, m_p4, p5);
804 } 804 }
805 805
806 private: 806 private:
807 FunctionWrapper m_functionWrapper; 807 FunctionWrapper m_functionWrapper;
808 typename ParamStorageTraits<P1>::StorageType m_p1; 808 typename ParamStorageTraits<P1>::StorageType m_p1;
809 typename ParamStorageTraits<P2>::StorageType m_p2; 809 typename ParamStorageTraits<P2>::StorageType m_p2;
810 typename ParamStorageTraits<P3>::StorageType m_p3; 810 typename ParamStorageTraits<P3>::StorageType m_p3;
811 typename ParamStorageTraits<P4>::StorageType m_p4; 811 typename ParamStorageTraits<P4>::StorageType m_p4;
812 }; 812 };
813 813
814 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6> 814 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6>
815 class FourArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> F INAL : public FunctionImpl<typename FunctionWrapper::ResultType(P5, P6)> { 815 class FourArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> f inal : public FunctionImpl<typename FunctionWrapper::ResultType(P5, P6)> {
816 public: 816 public:
817 FourArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4) 817 FourArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4)
818 : m_functionWrapper(functionWrapper) 818 : m_functionWrapper(functionWrapper)
819 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 819 , m_p1(ParamStorageTraits<P1>::wrap(p1))
820 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 820 , m_p2(ParamStorageTraits<P2>::wrap(p2))
821 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 821 , m_p3(ParamStorageTraits<P3>::wrap(p3))
822 , m_p4(ParamStorageTraits<P4>::wrap(p4)) 822 , m_p4(ParamStorageTraits<P4>::wrap(p4))
823 { 823 {
824 } 824 }
825 825
826 virtual typename FunctionWrapper::ResultType operator()(P5 p5, P6 p6) OVERRI DE 826 virtual typename FunctionWrapper::ResultType operator()(P5 p5, P6 p6) overri de
827 { 827 {
828 return m_functionWrapper(m_p1, m_p2, m_p3, m_p4, p5, p6); 828 return m_functionWrapper(m_p1, m_p2, m_p3, m_p4, p5, p6);
829 } 829 }
830 830
831 private: 831 private:
832 FunctionWrapper m_functionWrapper; 832 FunctionWrapper m_functionWrapper;
833 typename ParamStorageTraits<P1>::StorageType m_p1; 833 typename ParamStorageTraits<P1>::StorageType m_p1;
834 typename ParamStorageTraits<P2>::StorageType m_p2; 834 typename ParamStorageTraits<P2>::StorageType m_p2;
835 typename ParamStorageTraits<P3>::StorageType m_p3; 835 typename ParamStorageTraits<P3>::StorageType m_p3;
836 typename ParamStorageTraits<P4>::StorageType m_p4; 836 typename ParamStorageTraits<P4>::StorageType m_p4;
837 }; 837 };
838 838
839 template<typename FunctionWrapper, typename FunctionType> 839 template<typename FunctionWrapper, typename FunctionType>
840 class FiveArgPartBoundFunctionImpl; 840 class FiveArgPartBoundFunctionImpl;
841 841
842 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6> 842 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6>
843 class FiveArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> F INAL : public FunctionImpl<typename FunctionWrapper::ResultType(P6)> { 843 class FiveArgPartBoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> f inal : public FunctionImpl<typename FunctionWrapper::ResultType(P6)> {
844 public: 844 public:
845 FiveArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5) 845 FiveArgPartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5)
846 : m_functionWrapper(functionWrapper) 846 : m_functionWrapper(functionWrapper)
847 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 847 , m_p1(ParamStorageTraits<P1>::wrap(p1))
848 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 848 , m_p2(ParamStorageTraits<P2>::wrap(p2))
849 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 849 , m_p3(ParamStorageTraits<P3>::wrap(p3))
850 , m_p4(ParamStorageTraits<P4>::wrap(p4)) 850 , m_p4(ParamStorageTraits<P4>::wrap(p4))
851 , m_p5(ParamStorageTraits<P5>::wrap(p5)) 851 , m_p5(ParamStorageTraits<P5>::wrap(p5))
852 { 852 {
853 } 853 }
854 854
855 virtual typename FunctionWrapper::ResultType operator()(P6 p6) OVERRIDE 855 virtual typename FunctionWrapper::ResultType operator()(P6 p6) override
856 { 856 {
857 return m_functionWrapper(m_p1, m_p2, m_p3, m_p4, m_p5, p6); 857 return m_functionWrapper(m_p1, m_p2, m_p3, m_p4, m_p5, p6);
858 } 858 }
859 859
860 private: 860 private:
861 FunctionWrapper m_functionWrapper; 861 FunctionWrapper m_functionWrapper;
862 typename ParamStorageTraits<P1>::StorageType m_p1; 862 typename ParamStorageTraits<P1>::StorageType m_p1;
863 typename ParamStorageTraits<P2>::StorageType m_p2; 863 typename ParamStorageTraits<P2>::StorageType m_p2;
864 typename ParamStorageTraits<P3>::StorageType m_p3; 864 typename ParamStorageTraits<P3>::StorageType m_p3;
865 typename ParamStorageTraits<P4>::StorageType m_p4; 865 typename ParamStorageTraits<P4>::StorageType m_p4;
866 typename ParamStorageTraits<P5>::StorageType m_p5; 866 typename ParamStorageTraits<P5>::StorageType m_p5;
867 }; 867 };
868 868
869 template<typename FunctionWrapper, typename FunctionType> 869 template<typename FunctionWrapper, typename FunctionType>
870 class BoundFunctionImpl; 870 class BoundFunctionImpl;
871 871
872 template<typename FunctionWrapper, typename R> 872 template<typename FunctionWrapper, typename R>
873 class BoundFunctionImpl<FunctionWrapper, R()> FINAL : public FunctionImpl<typena me FunctionWrapper::ResultType()> { 873 class BoundFunctionImpl<FunctionWrapper, R()> final : public FunctionImpl<typena me FunctionWrapper::ResultType()> {
874 public: 874 public:
875 explicit BoundFunctionImpl(FunctionWrapper functionWrapper) 875 explicit BoundFunctionImpl(FunctionWrapper functionWrapper)
876 : m_functionWrapper(functionWrapper) 876 : m_functionWrapper(functionWrapper)
877 { 877 {
878 } 878 }
879 879
880 virtual typename FunctionWrapper::ResultType operator()() OVERRIDE 880 virtual typename FunctionWrapper::ResultType operator()() override
881 { 881 {
882 return m_functionWrapper(); 882 return m_functionWrapper();
883 } 883 }
884 884
885 private: 885 private:
886 FunctionWrapper m_functionWrapper; 886 FunctionWrapper m_functionWrapper;
887 }; 887 };
888 888
889 template<typename FunctionWrapper, typename R, typename P1> 889 template<typename FunctionWrapper, typename R, typename P1>
890 class BoundFunctionImpl<FunctionWrapper, R(P1)> FINAL : public FunctionImpl<type name FunctionWrapper::ResultType()> { 890 class BoundFunctionImpl<FunctionWrapper, R(P1)> final : public FunctionImpl<type name FunctionWrapper::ResultType()> {
891 public: 891 public:
892 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1) 892 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1)
893 : m_functionWrapper(functionWrapper) 893 : m_functionWrapper(functionWrapper)
894 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 894 , m_p1(ParamStorageTraits<P1>::wrap(p1))
895 { 895 {
896 } 896 }
897 897
898 virtual typename FunctionWrapper::ResultType operator()() OVERRIDE 898 virtual typename FunctionWrapper::ResultType operator()() override
899 { 899 {
900 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1)); 900 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1));
901 } 901 }
902 902
903 private: 903 private:
904 FunctionWrapper m_functionWrapper; 904 FunctionWrapper m_functionWrapper;
905 typename ParamStorageTraits<P1>::StorageType m_p1; 905 typename ParamStorageTraits<P1>::StorageType m_p1;
906 }; 906 };
907 907
908 template<typename FunctionWrapper, typename R, typename P1, typename P2> 908 template<typename FunctionWrapper, typename R, typename P1, typename P2>
909 class BoundFunctionImpl<FunctionWrapper, R(P1, P2)> FINAL : public FunctionImpl< typename FunctionWrapper::ResultType()> { 909 class BoundFunctionImpl<FunctionWrapper, R(P1, P2)> final : public FunctionImpl< typename FunctionWrapper::ResultType()> {
910 public: 910 public:
911 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2) 911 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2)
912 : m_functionWrapper(functionWrapper) 912 : m_functionWrapper(functionWrapper)
913 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 913 , m_p1(ParamStorageTraits<P1>::wrap(p1))
914 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 914 , m_p2(ParamStorageTraits<P2>::wrap(p2))
915 { 915 {
916 } 916 }
917 917
918 virtual typename FunctionWrapper::ResultType operator()() OVERRIDE 918 virtual typename FunctionWrapper::ResultType operator()() override
919 { 919 {
920 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2)); 920 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2));
921 } 921 }
922 922
923 private: 923 private:
924 FunctionWrapper m_functionWrapper; 924 FunctionWrapper m_functionWrapper;
925 typename ParamStorageTraits<P1>::StorageType m_p1; 925 typename ParamStorageTraits<P1>::StorageType m_p1;
926 typename ParamStorageTraits<P2>::StorageType m_p2; 926 typename ParamStorageTraits<P2>::StorageType m_p2;
927 }; 927 };
928 928
929 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3> 929 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3>
930 class BoundFunctionImpl<FunctionWrapper, R(P1, P2, P3)> FINAL : public FunctionI mpl<typename FunctionWrapper::ResultType()> { 930 class BoundFunctionImpl<FunctionWrapper, R(P1, P2, P3)> final : public FunctionI mpl<typename FunctionWrapper::ResultType()> {
931 public: 931 public:
932 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2, const P3& p3) 932 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2, const P3& p3)
933 : m_functionWrapper(functionWrapper) 933 : m_functionWrapper(functionWrapper)
934 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 934 , m_p1(ParamStorageTraits<P1>::wrap(p1))
935 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 935 , m_p2(ParamStorageTraits<P2>::wrap(p2))
936 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 936 , m_p3(ParamStorageTraits<P3>::wrap(p3))
937 { 937 {
938 } 938 }
939 939
940 virtual typename FunctionWrapper::ResultType operator()() OVERRIDE 940 virtual typename FunctionWrapper::ResultType operator()() override
941 { 941 {
942 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3)); 942 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3));
943 } 943 }
944 944
945 private: 945 private:
946 FunctionWrapper m_functionWrapper; 946 FunctionWrapper m_functionWrapper;
947 typename ParamStorageTraits<P1>::StorageType m_p1; 947 typename ParamStorageTraits<P1>::StorageType m_p1;
948 typename ParamStorageTraits<P2>::StorageType m_p2; 948 typename ParamStorageTraits<P2>::StorageType m_p2;
949 typename ParamStorageTraits<P3>::StorageType m_p3; 949 typename ParamStorageTraits<P3>::StorageType m_p3;
950 }; 950 };
951 951
952 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4> 952 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4>
953 class BoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> FINAL : public Funct ionImpl<typename FunctionWrapper::ResultType()> { 953 class BoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4)> final : public Funct ionImpl<typename FunctionWrapper::ResultType()> {
954 public: 954 public:
955 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2, const P3& p3, const P4& p4) 955 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2, const P3& p3, const P4& p4)
956 : m_functionWrapper(functionWrapper) 956 : m_functionWrapper(functionWrapper)
957 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 957 , m_p1(ParamStorageTraits<P1>::wrap(p1))
958 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 958 , m_p2(ParamStorageTraits<P2>::wrap(p2))
959 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 959 , m_p3(ParamStorageTraits<P3>::wrap(p3))
960 , m_p4(ParamStorageTraits<P4>::wrap(p4)) 960 , m_p4(ParamStorageTraits<P4>::wrap(p4))
961 { 961 {
962 } 962 }
963 963
964 virtual typename FunctionWrapper::ResultType operator()() OVERRIDE 964 virtual typename FunctionWrapper::ResultType operator()() override
965 { 965 {
966 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageT raits<P4>::unwrap(m_p4)); 966 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageT raits<P4>::unwrap(m_p4));
967 } 967 }
968 968
969 private: 969 private:
970 FunctionWrapper m_functionWrapper; 970 FunctionWrapper m_functionWrapper;
971 typename ParamStorageTraits<P1>::StorageType m_p1; 971 typename ParamStorageTraits<P1>::StorageType m_p1;
972 typename ParamStorageTraits<P2>::StorageType m_p2; 972 typename ParamStorageTraits<P2>::StorageType m_p2;
973 typename ParamStorageTraits<P3>::StorageType m_p3; 973 typename ParamStorageTraits<P3>::StorageType m_p3;
974 typename ParamStorageTraits<P4>::StorageType m_p4; 974 typename ParamStorageTraits<P4>::StorageType m_p4;
975 }; 975 };
976 976
977 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5> 977 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5>
978 class BoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> FINAL : public F unctionImpl<typename FunctionWrapper::ResultType()> { 978 class BoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5)> final : public F unctionImpl<typename FunctionWrapper::ResultType()> {
979 public: 979 public:
980 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2, const P3& p3, const P4& p4, const P5& p5) 980 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2, const P3& p3, const P4& p4, const P5& p5)
981 : m_functionWrapper(functionWrapper) 981 : m_functionWrapper(functionWrapper)
982 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 982 , m_p1(ParamStorageTraits<P1>::wrap(p1))
983 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 983 , m_p2(ParamStorageTraits<P2>::wrap(p2))
984 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 984 , m_p3(ParamStorageTraits<P3>::wrap(p3))
985 , m_p4(ParamStorageTraits<P4>::wrap(p4)) 985 , m_p4(ParamStorageTraits<P4>::wrap(p4))
986 , m_p5(ParamStorageTraits<P5>::wrap(p5)) 986 , m_p5(ParamStorageTraits<P5>::wrap(p5))
987 { 987 {
988 } 988 }
989 989
990 virtual typename FunctionWrapper::ResultType operator()() OVERRIDE 990 virtual typename FunctionWrapper::ResultType operator()() override
991 { 991 {
992 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageT raits<P4>::unwrap(m_p4), ParamStorageTraits<P5>::unwrap(m_p5)); 992 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageT raits<P4>::unwrap(m_p4), ParamStorageTraits<P5>::unwrap(m_p5));
993 } 993 }
994 994
995 private: 995 private:
996 FunctionWrapper m_functionWrapper; 996 FunctionWrapper m_functionWrapper;
997 typename ParamStorageTraits<P1>::StorageType m_p1; 997 typename ParamStorageTraits<P1>::StorageType m_p1;
998 typename ParamStorageTraits<P2>::StorageType m_p2; 998 typename ParamStorageTraits<P2>::StorageType m_p2;
999 typename ParamStorageTraits<P3>::StorageType m_p3; 999 typename ParamStorageTraits<P3>::StorageType m_p3;
1000 typename ParamStorageTraits<P4>::StorageType m_p4; 1000 typename ParamStorageTraits<P4>::StorageType m_p4;
1001 typename ParamStorageTraits<P5>::StorageType m_p5; 1001 typename ParamStorageTraits<P5>::StorageType m_p5;
1002 }; 1002 };
1003 1003
1004 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6> 1004 template<typename FunctionWrapper, typename R, typename P1, typename P2, typenam e P3, typename P4, typename P5, typename P6>
1005 class BoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> FINAL : publ ic FunctionImpl<typename FunctionWrapper::ResultType()> { 1005 class BoundFunctionImpl<FunctionWrapper, R(P1, P2, P3, P4, P5, P6)> final : publ ic FunctionImpl<typename FunctionWrapper::ResultType()> {
1006 public: 1006 public:
1007 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2, const P3& p3, const P4& p4, const P5& p5, const P6& p6) 1007 BoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p 2, const P3& p3, const P4& p4, const P5& p5, const P6& p6)
1008 : m_functionWrapper(functionWrapper) 1008 : m_functionWrapper(functionWrapper)
1009 , m_p1(ParamStorageTraits<P1>::wrap(p1)) 1009 , m_p1(ParamStorageTraits<P1>::wrap(p1))
1010 , m_p2(ParamStorageTraits<P2>::wrap(p2)) 1010 , m_p2(ParamStorageTraits<P2>::wrap(p2))
1011 , m_p3(ParamStorageTraits<P3>::wrap(p3)) 1011 , m_p3(ParamStorageTraits<P3>::wrap(p3))
1012 , m_p4(ParamStorageTraits<P4>::wrap(p4)) 1012 , m_p4(ParamStorageTraits<P4>::wrap(p4))
1013 , m_p5(ParamStorageTraits<P5>::wrap(p5)) 1013 , m_p5(ParamStorageTraits<P5>::wrap(p5))
1014 , m_p6(ParamStorageTraits<P6>::wrap(p6)) 1014 , m_p6(ParamStorageTraits<P6>::wrap(p6))
1015 { 1015 {
1016 } 1016 }
1017 1017
1018 virtual typename FunctionWrapper::ResultType operator()() OVERRIDE 1018 virtual typename FunctionWrapper::ResultType operator()() override
1019 { 1019 {
1020 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageT raits<P4>::unwrap(m_p4), ParamStorageTraits<P5>::unwrap(m_p5), ParamStorageTrait s<P6>::unwrap(m_p6)); 1020 return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStor ageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageT raits<P4>::unwrap(m_p4), ParamStorageTraits<P5>::unwrap(m_p5), ParamStorageTrait s<P6>::unwrap(m_p6));
1021 } 1021 }
1022 1022
1023 private: 1023 private:
1024 FunctionWrapper m_functionWrapper; 1024 FunctionWrapper m_functionWrapper;
1025 typename ParamStorageTraits<P1>::StorageType m_p1; 1025 typename ParamStorageTraits<P1>::StorageType m_p1;
1026 typename ParamStorageTraits<P2>::StorageType m_p2; 1026 typename ParamStorageTraits<P2>::StorageType m_p2;
1027 typename ParamStorageTraits<P3>::StorageType m_p3; 1027 typename ParamStorageTraits<P3>::StorageType m_p3;
1028 typename ParamStorageTraits<P4>::StorageType m_p4; 1028 typename ParamStorageTraits<P4>::StorageType m_p4;
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 1365
1366 typedef Function<void()> Closure; 1366 typedef Function<void()> Closure;
1367 1367
1368 } 1368 }
1369 1369
1370 using WTF::Function; 1370 using WTF::Function;
1371 using WTF::bind; 1371 using WTF::bind;
1372 using WTF::Closure; 1372 using WTF::Closure;
1373 1373
1374 #endif // WTF_Functional_h 1374 #endif // WTF_Functional_h
OLDNEW
« no previous file with comments | « Source/wtf/Float64Array.h ('k') | Source/wtf/Int16Array.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698