marten_range marten_range

Niner since 2005


  • Sarita Bafna: VC++ ​"​Orcas" - Marshaling Library and MFC support for Common Controls

    Haven't seen the video but:

    1. Thank you for improved standard conformance in VS.2005. I'd just like to point out that I'd never go back to VC6 from VS.2005 even though it compiles a tad slower. Also the error reportage from VS.2005 when dealing with templates has gone from hardly-useful (VC6) to really neat (VS.2005) (Except the occasional ICE),

    2. Yes, I would much prefer marshal_as<to_type>(from_type) instead of for instance marsh_as_string. Perhaps with some ability to inject custom marshalling for my used defined types? Also I prefer STL naming convention over the one used in MFC.

    3. Will Orcas support TR1?

    3. Regarding something completely different. GCC team is experimenting with template "varargs" ie a template class that can take arbitrary number of template parameters. That seems to be easy the certain meta-programming tasks alot. Something you're talking about? This isn't standard C++ I know but still.

    4. And since I'm on topic of non-standard C++. Is there hope for typeof in future Visual Studios?

    5. Lambda expressions?
  • Don Syme: Introduction to F#, Part 2

    Ahh, this takes me back to the Msc days.

    I occasionally thinks that a functional language might be helpful to create correct and effective programs that uses multi-core CPUs. This is because a "pure" functional language doesn't allow side-effects (modifying a member variable is a side effect).

    FYI: Ericsson (you know the mobile phones) developed a functional language that they still use in their AXE line AFAIK.

    Guaranteeing correctness is as far as I remember also one of the functional languages strong points.

    Btw. a simple F# to solve the problems of the game tower of hanoi:

    let rec hanoi n x y z =
    match n with
    | 0 -> []
    | d -> List.append (hanoi (d-1) x z y) ((x,y)::(hanoi (d-1) z y x));;

    hanoi 2 1 2 3;;


    [(1, 3); (1, 2); (3, 2)]

    Ie. for 2 bricks move brick from pin 1 to pin 3, from pin 1 to pin 2 and finally from pin 3 to pin 2.