Ticket #5024: cuda.patch
File cuda.patch, 12.2 KB (added by , 12 years ago) |
---|
-
boost/lexical_cast.hpp
342 342 #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS 343 343 BOOST_STATIC_CONSTANT(std::size_t, value = 344 344 std::numeric_limits<Source>::is_signed + 345 std::numeric_limits<Source>::is_specialized + // == 1345 std::numeric_limits<Source>::is_specialized + 346 346 std::numeric_limits<Source>::digits10 * 2 347 347 ); 348 348 #else -
boost/mpl/assert.hpp
146 146 template< typename P > struct assert_arg_pred_not 147 147 { 148 148 typedef typename P::type p_type; 149 #ifdef __CUDACC__ 150 enum { p = !p_type::value }; 151 #else 149 152 BOOST_MPL_AUX_ASSERT_CONSTANT( bool, p = !p_type::value ); 153 #endif 150 154 typedef typename assert_arg_pred_impl<p>::type type; 151 155 }; 152 156 -
boost/mpl/size_t_fwd.hpp
20 20 21 21 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 22 23 #if defined(__CUDACC__) 24 typedef std::size_t std_size_t; 25 template< std_size_t N > struct size_t; 26 #else 23 27 template< std::size_t N > struct size_t; 28 #endif 24 29 25 30 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 26 31 BOOST_MPL_AUX_ADL_BARRIER_DECL(size_t) -
boost/mpl/aux_/config/gcc.hpp
14 14 // $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ 15 15 // $Revision: 49267 $ 16 16 17 #if defined(__GNUC__) && ! defined(__EDG_VERSION__)17 #if defined(__GNUC__) && !(defined(__EDG_VERSION__) || defined(__CUDACC__)) 18 18 # define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__) 19 19 #else 20 20 # define BOOST_MPL_CFG_GCC 0 -
boost/mpl/aux_/integral_wrapper.hpp
56 56 // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), 57 57 // while some other don't like 'value + 1' (Borland), and some don't like 58 58 // either 59 #if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) 59 #if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) || defined(__CUDACC__) 60 60 private: 61 61 BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1))); 62 62 BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1))); -
boost/mpl/size_t.hpp
16 16 17 17 #include <boost/mpl/size_t_fwd.hpp> 18 18 19 20 #if defined(__CUDACC__) 21 22 //typedef std::size_t std_size_t; 23 #define AUX_WRAPPER_VALUE_TYPE std_size_t 24 #define AUX_WRAPPER_NAME size_t 25 #define AUX_WRAPPER_PARAMS(N) std_size_t N 26 27 #else 28 19 29 #define AUX_WRAPPER_VALUE_TYPE std::size_t 20 30 #define AUX_WRAPPER_NAME size_t 21 31 #define AUX_WRAPPER_PARAMS(N) std::size_t N 22 32 33 #endif 34 23 35 #include <boost/mpl/aux_/integral_wrapper.hpp> 24 36 25 37 #endif // BOOST_MPL_SIZE_T_HPP_INCLUDED -
boost/iterator/iterator_concepts.hpp
133 133 , boost::EqualityComparable<Iterator> 134 134 135 135 { 136 private: 137 template<class C> 138 struct trait { 139 typedef typename C::traversal_category traversal_category; 140 }; 141 public: 136 142 BOOST_CONCEPT_ASSERT(( 137 143 boost::Convertible< 138 BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category144 typename trait<SinglePassIterator>::traversal_category 139 145 , boost::single_pass_traversal_tag 140 146 > )); 141 147 }; … … 148 154 149 155 BOOST_MPL_ASSERT((boost::is_integral<difference_type>)); 150 156 BOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true); 151 157 private: 158 template<class C> 159 struct trait { 160 typedef typename C::traversal_category traversal_category; 161 }; 162 public: 152 163 BOOST_CONCEPT_ASSERT(( 153 164 boost::Convertible< 154 BOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category165 typename trait<ForwardTraversal>::traversal_category 155 166 , boost::forward_traversal_tag 156 167 > )); 157 168 }; … … 159 170 BOOST_concept(BidirectionalTraversal,(Iterator)) 160 171 : ForwardTraversal<Iterator> 161 172 { 173 private: 174 template<class C> 175 struct trait { 176 typedef typename C::traversal_category traversal_category; 177 }; 178 public: 162 179 BOOST_CONCEPT_ASSERT(( 163 180 boost::Convertible< 164 BOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category181 typename trait<BidirectionalTraversal>::traversal_category 165 182 , boost::bidirectional_traversal_tag 166 183 > )); 167 184 … … 177 194 BOOST_concept(RandomAccessTraversal,(Iterator)) 178 195 : BidirectionalTraversal<Iterator> 179 196 { 197 private: 198 template<class C> 199 struct trait { 200 typedef typename C::traversal_category traversal_category; 201 }; 202 public: 180 203 BOOST_CONCEPT_ASSERT(( 181 204 boost::Convertible< 182 BOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category205 typename trait<RandomAccessTraversal>::traversal_category 183 206 , boost::random_access_traversal_tag 184 207 > )); 185 208 -
boost/config/compiler/nvcc.hpp
15 15 // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device 16 16 #define BOOST_GPU_ENABLED __host__ __device__ 17 17 18 // #ifndef __CUDA_ARCH__ 19 // #define BOOST_NO_DEDUCED_TYPENAME 20 // #warning BOOST_NO_DEDUCED_TYPENAME 21 // #else 22 // #warning !BOOST_NO_DEDUCED_TYPENAME 23 // #endif 24 18 25 // Boost support macro for NVCC 19 26 // NVCC Basically behaves like some flavor of MSVC6 + some specific quirks 20 #define BOOST_NO_INCLASS_MEMBER_INITIALIZATION21 #define BOOST_MSVC6_MEMBER_TEMPLATES27 //#define BOOST_NO_INCLASS_MEMBER_INITIALIZATION 28 //#define BOOST_MSVC6_MEMBER_TEMPLATES 22 29 #define BOOST_HAS_UNISTD_H 23 30 #define BOOST_HAS_STDINT_H 24 31 #define BOOST_HAS_SIGACTION -
boost/concept_check.hpp
506 506 BOOST_CONCEPT_USAGE(ForwardIterator) 507 507 { 508 508 BOOST_CONCEPT_ASSERT((Convertible< 509 BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category509 typename InputIterator<TT>::iterator_category 510 510 , std::forward_iterator_tag 511 511 >)); 512 512 … … 534 534 BOOST_CONCEPT_USAGE(BidirectionalIterator) 535 535 { 536 536 BOOST_CONCEPT_ASSERT((Convertible< 537 BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category537 typename ForwardIterator<TT>::iterator_category 538 538 , std::bidirectional_iterator_tag 539 539 >)); 540 540 … … 638 638 BOOST_CONCEPT_USAGE(Mutable_Container) 639 639 { 640 640 BOOST_CONCEPT_ASSERT(( 641 Assignable<typename Mutable_Container::value_type>));641 Assignable<typename Container<C>::value_type>)); 642 642 643 643 BOOST_CONCEPT_ASSERT((InputIterator<iterator>)); 644 644 … … 659 659 { 660 660 BOOST_CONCEPT_ASSERT(( 661 661 ForwardIterator< 662 typename ForwardContainer::const_iterator662 typename Container<C>::const_iterator 663 663 >)); 664 664 } 665 665 }; … … 668 668 : ForwardContainer<C> 669 669 , Mutable_Container<C> 670 670 { 671 private: 672 template<class C_> 673 struct traits { 674 typedef typename C_::iterator iterator; 675 }; 676 typedef traits<Mutable_ForwardContainer> self; 677 public: 671 678 BOOST_CONCEPT_USAGE(Mutable_ForwardContainer) 672 679 { 673 680 BOOST_CONCEPT_ASSERT(( 674 681 Mutable_ForwardIterator< 675 typename Mutable_ForwardContainer::iterator682 typename self::iterator 676 683 >)); 677 684 } 678 685 }; … … 688 695 { 689 696 BOOST_CONCEPT_ASSERT(( 690 697 BidirectionalIterator< 691 typename ReversibleContainer::const_iterator>));698 typename ForwardContainer<C>::const_iterator>)); 692 699 693 700 BOOST_CONCEPT_ASSERT((BidirectionalIterator<const_reverse_iterator>)); 694 701 … … 732 739 { 733 740 BOOST_CONCEPT_ASSERT(( 734 741 RandomAccessIterator< 735 typename RandomAccessContainer::const_iterator742 typename ReversibleContainer<C>::const_iterator 736 743 >)); 737 744 738 745 const_constraints(c); … … 753 760 , RandomAccessContainer<C> 754 761 { 755 762 private: 756 typedef Mutable_RandomAccessContainer self; 763 template<class C_> 764 struct traits { 765 typedef typename C_::iterator iterator; 766 typedef typename C_::reverse_iterator reverse_iterator; 767 typedef typename C_::reference reference; 768 }; 769 typedef traits<Mutable_RandomAccessContainer> self; 757 770 public: 758 771 BOOST_CONCEPT_USAGE(Mutable_RandomAccessContainer) 759 772 { … … 777 790 // ... so why aren't we following the standard? --DWA 778 791 , DefaultConstructible<S> 779 792 { 793 private: 794 template<class S_> 795 struct traits { 796 typedef typename S_::reference reference; 797 typedef typename S_::const_reference const_reference; 798 }; 799 typedef traits<Sequence> self; 800 public: 780 801 BOOST_CONCEPT_USAGE(Sequence) 781 802 { 782 803 S … … 791 812 c.erase(p); 792 813 c.erase(p, q); 793 814 794 typename Sequence::reference r = c.front();815 typename self::reference r = c.front(); 795 816 796 817 ignore_unused_variable_warning(c); 797 818 ignore_unused_variable_warning(c2); … … 801 822 } 802 823 private: 803 824 void const_constraints(const S& c) { 804 typename Sequence::const_reference r = c.front();825 typename self::const_reference r = c.front(); 805 826 ignore_unused_variable_warning(r); 806 827 } 807 828 … … 827 848 BOOST_concept(BackInsertionSequence,(S)) 828 849 : Sequence<S> 829 850 { 851 private: 852 template<class S_> 853 struct traits { 854 typedef typename S_::reference reference; 855 typedef typename S_::const_reference const_reference; 856 }; 857 typedef traits<BackInsertionSequence> self; 858 public: 830 859 BOOST_CONCEPT_USAGE(BackInsertionSequence) 831 860 { 832 861 c.push_back(t); 833 862 c.pop_back(); 834 typename BackInsertionSequence::reference r = c.back();863 typename self::reference r = c.back(); 835 864 ignore_unused_variable_warning(r); 836 865 const_constraints(c); 837 866 } 838 867 private: 839 868 void const_constraints(const S& cc) { 840 typename BackInsertionSequence::const_reference869 typename self::const_reference 841 870 r = cc.back(); 842 871 ignore_unused_variable_warning(r); 843 872 }; … … 849 878 : ForwardContainer<C> 850 879 , DefaultConstructible<C> 851 880 { 881 private: 882 template<class S_> 883 struct traits { 884 typedef typename S_::value_type value_type; 885 }; 886 typedef traits<AssociativeContainer> self; 887 public: 852 888 typedef typename C::key_type key_type; 853 889 typedef typename C::key_compare key_compare; 854 890 typedef typename C::value_compare value_compare; … … 864 900 const_constraints(c); 865 901 BOOST_CONCEPT_ASSERT((BinaryPredicate<key_compare,key_type,key_type>)); 866 902 867 typedef typename AssociativeContainer::value_type value_type_;903 typedef typename self::value_type value_type_; 868 904 BOOST_CONCEPT_ASSERT((BinaryPredicate<value_compare,value_type_,value_type_>)); 869 905 } 870 906