Listing 4
(a)
#if defined(RECLS_PLATFORM_IS_UNIX)
# include <unixstl.h>
# include <unixstl_filesystem_traits.h>
# include <unixstl_glob_sequence.h>
namespace platform_stl = ::unixstl;
#elif defined(RECLS_PLATFORM_IS_WIN32)
# include <winstl.h>
# include <winstl_filesystem_traits.h>
# include <winstl_glob_sequence.h>
namespace platform_stl = ::winstl;
#else /* unrecognised platform */
# error The platform is not recognized
#endif /* platform */
(b)
...
class ReclsFileSearchDirectoryNode
{
public:
typedef platform_stl::filesystem_traits<recls_char_t> traits_type;
typedef platform_stl::basic_file_path_buffer<recls_char_t>
file_path_buffer_type;
private:
typedef stlsoft::basic_simple_string<recls_char_t> string_type;
...
(c)
...
#if defined(RECLS_PLATFORM_IS_UNIX)
typedef unixstl::glob_sequence file_find_sequence_type;
#elif defined(RECLS_PLATFORM_IS_WIN32)
typedef winstl::basic_findfile_sequence< recls_char_t, traits_type>
file_find_sequence_type;
#else /* unrecognized platform */
# error The platform is not recognized
#endif /* platform */
...