Changeset d5047002 in mainline
- Timestamp:
- 2018-07-05T21:41:24Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 28cb7843
- Parents:
- 4960254
- git-author:
- Dzejrou <dzejrou@…> (2018-05-17 18:57:52)
- git-committer:
- Dzejrou <dzejrou@…> (2018-07-05 21:41:24)
- Location:
- uspace/lib/cpp
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/cpp/include/__bits/test/test.hpp
r4960254 rd5047002 57 57 bool ok_{true}; 58 58 bool report_{true}; 59 60 void test(const char* tname, bool expr) 61 { 62 test_eq(tname, expr, true); 63 } 59 64 60 65 template<class... Args> -
uspace/lib/cpp/src/__bits/test/memory.cpp
r4960254 rd5047002 212 212 * so we get all the defaults here. 213 213 */ 214 static_assert(std::is_same_v<typename dummy_traits1::pointer, int*>); 215 static_assert(std::is_same_v<typename dummy_traits1::const_pointer, const int*>); 216 static_assert(std::is_same_v<typename dummy_traits1::void_pointer, void*>); 217 static_assert(std::is_same_v<typename dummy_traits1::const_void_pointer, const void*>); 218 static_assert(std::is_same_v<typename dummy_traits1::difference_type, ptrdiff_t>); 219 static_assert(std::is_same_v<typename dummy_traits1::size_type, std::make_unsigned_t<ptrdiff_t>>); 220 static_assert(std::is_same_v<typename dummy_traits1::propagate_on_container_copy_assignment, std::false_type>); 221 static_assert(std::is_same_v<typename dummy_traits1::propagate_on_container_move_assignment, std::false_type>); 222 static_assert(std::is_same_v<typename dummy_traits1::propagate_on_container_swap, std::false_type>); 223 static_assert(std::is_same_v<typename dummy_traits1::is_always_equal, typename std::is_empty<aux::dummy_allocator1>::type>); 214 test( 215 "allocator traits default for pointer", 216 std::is_same_v<typename dummy_traits1::pointer, int*> 217 ); 218 test( 219 "allocator traits default for const_pointer", 220 std::is_same_v<typename dummy_traits1::const_pointer, const int*> 221 ); 222 test( 223 "allocator traits default for void_pointer", 224 std::is_same_v<typename dummy_traits1::void_pointer, void*> 225 ); 226 test( 227 "allocator traits default for const_void_pointer", 228 std::is_same_v<typename dummy_traits1::const_void_pointer, const void*> 229 ); 230 test( 231 "allocator traits default for difference_type", 232 std::is_same_v<typename dummy_traits1::difference_type, ptrdiff_t> 233 ); 234 test( 235 "allocator traits default for size_type", 236 std::is_same_v<typename dummy_traits1::size_type, std::make_unsigned_t<ptrdiff_t>> 237 ); 238 test( 239 "allocator traits default for copy propagate", 240 std::is_same_v<typename dummy_traits1::propagate_on_container_copy_assignment, std::false_type> 241 ); 242 test( 243 "allocator traits default for move propagate", 244 std::is_same_v<typename dummy_traits1::propagate_on_container_move_assignment, std::false_type> 245 ); 246 test( 247 "allocator traits default for swap propagate", 248 std::is_same_v<typename dummy_traits1::propagate_on_container_swap, std::false_type> 249 ); 250 test( 251 "allocator traits default for is_always_equal", 252 std::is_same_v<typename dummy_traits1::is_always_equal, typename std::is_empty<aux::dummy_allocator1>::type> 253 ); 224 254 225 255 /** … … 227 257 * the the traits just use identity. 228 258 */ 229 static_assert(std::is_same_v<typename dummy_traits2::pointer, char*>); 230 static_assert(std::is_same_v<typename dummy_traits2::const_pointer, const void*>); 231 static_assert(std::is_same_v<typename dummy_traits2::void_pointer, bool*>); 232 static_assert(std::is_same_v<typename dummy_traits2::const_void_pointer, volatile bool*>); 233 static_assert(std::is_same_v<typename dummy_traits2::difference_type, short>); 234 static_assert(std::is_same_v<typename dummy_traits2::size_type, long>); 235 static_assert(std::is_same_v<typename dummy_traits2::propagate_on_container_copy_assignment, std::true_type>); 236 static_assert(std::is_same_v<typename dummy_traits2::propagate_on_container_move_assignment, std::true_type>); 237 static_assert(std::is_same_v<typename dummy_traits2::propagate_on_container_swap, std::true_type>); 238 static_assert(std::is_same_v<typename dummy_traits2::is_always_equal, std::true_type>); 259 test( 260 "allocator traits given pointer", 261 std::is_same_v<typename dummy_traits2::pointer, char*> 262 ); 263 test( 264 "allocator traits given const_pointer", 265 std::is_same_v<typename dummy_traits2::const_pointer, const void*> 266 ); 267 test( 268 "allocator traits given void_pointer", 269 std::is_same_v<typename dummy_traits2::void_pointer, bool*> 270 ); 271 test( 272 "allocator traits given const_void_pointer", 273 std::is_same_v<typename dummy_traits2::const_void_pointer, volatile bool*> 274 ); 275 test( 276 "allocator traits given difference_type", 277 std::is_same_v<typename dummy_traits2::difference_type, short> 278 ); 279 test( 280 "allocator traits given size_type", 281 std::is_same_v<typename dummy_traits2::size_type, long> 282 ); 283 test( 284 "allocator traits given copy propagate", 285 std::is_same_v<typename dummy_traits2::propagate_on_container_copy_assignment, std::true_type> 286 ); 287 test( 288 "allocator traits given move propagate", 289 std::is_same_v<typename dummy_traits2::propagate_on_container_move_assignment, std::true_type> 290 ); 291 test( 292 "allocator traits given swap propagate", 293 std::is_same_v<typename dummy_traits2::propagate_on_container_swap, std::true_type> 294 ); 295 test( 296 "allocator traits given is_always_equal", 297 std::is_same_v<typename dummy_traits2::is_always_equal, std::true_type> 298 ); 239 299 } 240 300 … … 245 305 using int_traits = std::pointer_traits<int*>; 246 306 247 static_assert(std::is_same_v<typename dummy_traits1::pointer, aux::dummy_pointer1>); 248 static_assert(std::is_same_v<typename dummy_traits1::element_type, int>); 249 static_assert(std::is_same_v<typename dummy_traits1::difference_type, bool>); 250 static_assert(std::is_same_v<typename dummy_traits1::template rebind<long>, unsigned>); 307 test( 308 "pointer traits pointer pt1", 309 std::is_same_v<typename dummy_traits1::pointer, aux::dummy_pointer1> 310 ); 311 test( 312 "pointer traits element_type pt1", 313 std::is_same_v<typename dummy_traits1::element_type, int> 314 ); 315 test( 316 "pointer traits difference_type pt1", 317 std::is_same_v<typename dummy_traits1::difference_type, bool> 318 ); 319 test( 320 "pointer traits rebind pt1", 321 std::is_same_v<typename dummy_traits1::template rebind<long>, unsigned> 322 ); 323 324 test( 325 "pointer traits pointer pt2", 326 std::is_same_v<typename dummy_traits2::pointer, aux::dummy_pointer2<int, char>> 327 ); 328 test( 329 "pointer traits element_type pt2", 330 std::is_same_v<typename dummy_traits2::element_type, signed char> 331 ); 332 test( 333 "pointer traits difference_type pt2", 334 std::is_same_v<typename dummy_traits2::difference_type, unsigned char> 335 ); 336 test( 337 "pointer traits rebind pt2", 338 std::is_same_v<typename dummy_traits2::template rebind<long>, aux::dummy_pointer2<long, char>> 339 ); 340 341 test( 342 "pointer traits pointer pt3", 343 std::is_same_v<typename int_traits::pointer, int*> 344 ); 345 test( 346 "pointer traits element_type pt3", 347 std::is_same_v<typename int_traits::element_type, int> 348 ); 349 test( 350 "pointer traits difference_type pt3", 351 std::is_same_v<typename int_traits::difference_type, ptrdiff_t> 352 ); 353 test( 354 "pointer traits rebind pt3", 355 std::is_same_v<typename int_traits::rebind<char>, char*> 356 ); 251 357 252 358 int x{10}; 253 359 test_eq("pointer_traits<Ptr>::pointer_to", dummy_traits1::pointer_to(x).tag, 10); 254 360 test_eq("pointer_traits<T*>::pointer_to", int_traits::pointer_to(x), &x); 255 256 static_assert(std::is_same_v<typename dummy_traits2::pointer, aux::dummy_pointer2<int, char>>);257 static_assert(std::is_same_v<typename dummy_traits2::element_type, signed char>);258 static_assert(std::is_same_v<typename dummy_traits2::difference_type, unsigned char>);259 260 static_assert(std::is_same_v<typename int_traits::pointer, int*>);261 static_assert(std::is_same_v<typename int_traits::element_type, int>);262 static_assert(std::is_same_v<typename int_traits::difference_type, ptrdiff_t>);263 static_assert(std::is_same_v<typename int_traits::rebind<char>, char*>);264 361 } 265 362 }
Note:
See TracChangeset
for help on using the changeset viewer.