tiens je m'y suis remis
sinon j'ai essayé aussi cette approche, je voulais me faire une approche d'écriture un peu plus sympa genre:
Code :
- using boost::filesystem;
- using boost::filesystem::path_cast;
- void foo( const path &pth )
- {
- ......
- }
- using boost::filesystem::path_cast
- truc()
- {
- foo( (nat) "c:\\mon super chemin long bien relou\\tes dents" );
- }
|
plustôt qu'un: (pour une question d'esthétisme)
Code :
- foo( fnat( "c:\\mon super chemin long bien relou\\tes dents" ) );
|
où 'fnat' serait une function.
avec ça:
Code :
- namespace boost
- {
- namespace filesystem
- {
- namespace path_cast
- {
- template <bool CHECKER( const std::string & name )> class path_name_check : public path
- {
- public:
- template <typename T> path_name_check( T value ) : path( value, CHECKER ) {};
- };
- typedef path_name_check<native> nat;
- typedef path_name_check<no_check> noc;
- typedef path_name_check<windows_name> win;
- typedef path_name_check<portable_posix_name> posix;
- typedef path_name_check<portable_name> pname;
- typedef path_name_check<portable_directory_name> pdir;
- typedef path_name_check<portable_file_name> pfile;
- }
- }
- }
|