Example #1
0
int main(int argc, char **argv)
{
    string_test();
		printf("1111111111111\n");
    expr_test();
		printf("1111111111111\n");
    macro_test();
    scope_test();
    forward_test();
    funcptr_test();
    loop_test();
    switch_test();
    goto_test();
    enum_test();
    typedef_test();
    struct_test();
    array_test();
    expr_ptr_test();
    bool_test();
    expr2_test();
    constant_expr_test();
    expr_cmp_test();
    char_short_test();
    init_test();
    compound_literal_test();
    kr_test();
    struct_assign_test();
    cast_test();
    bitfield_test();
    c99_bool_test();
    float_test();
    longlong_test();
    manyarg_test();
    stdarg_test();
    whitespace_test();
    relocation_test();
    old_style_function();
    alloca_test();
    sizeof_test();
    typeof_test();
    statement_expr_test();
    local_label_test();
    asm_test();
    builtin_test();
    return 0; 
}
Example #2
0
int main()
{

    try
    { 
      std::shared_ptr<Base> p = std::make_shared<Derived>();
 
      std::cout << "Created a shared Derived (as a pointer to Base)\n"
                << "  p.get() = " << p.get()
                << ", p.use_count() = " << p.use_count() << '\n';



     std::thread t1(thr, p), t2(thr, p), t3(thr, p);


     //if detatch ownership we can no longer use Base pointer
     //afeter threads end
     //p.reset(); // release ownership from main


     std::cout  << "Shared ownership between 3 threads and released\n"
               << "ownership from main:\n"
               << "  p.get() = " << p.get()
               << ", p.use_count() = " << p.use_count() << '\n';

     t1.join();
     t2.join(); 
     t3.join();

     std::cout << "All threads completed, the last one deleted Derived\n";
     std::cout << "end of scope (1)" << std::endl;  
     scope_test(p);
     std::cout << "end of scope (2)" << std::endl;
}
   catch(std::exception &e)
   {
        std::cout << "Error = "<< e.what() << std::endl;
   }
}