isblank

zxc
記事: 79
登録日時: 13年前
住所: 日本の背骨(?)あたり

isblank

投稿記事 by zxc » 11年前

 久々にプログラミングしました。で、存在は知ってたけれど、触れたことのなかった文字を分類するような関数群を使いたい状況になったわけです。それで疑問が出たので、とりあえず図を示します。
MSVC2010_none_isblank.png
MSVC2010_none_isblank.png (16.12 KiB) 閲覧数: 186 回
 

  図1:インテリ先生的にはそんなものはないらしい
  図2:C++11で存在するテンプレート関数のisblankはないらしい
  図3:C99で存在するisblank関数はないらしい

  ちなみにインクルードするファイルはこういうサイトを参考にして何度か試したつもりですが変化なし。ちなみに環境はMSVC2010です。

  要するに
  1. どこか間違っているのに、正しいと思い込んだ使い方をしている
  2. isspaceとかを使ってそれなりに楽に作れないこともないので、用意されてない
  3. その他
  のどれかってことですかね。でも2だとすると検索したら何かありそうなものなのに、ぱっと見では特に何もないみたい。
  面倒ですが、これ以上調べるなり解決策を探すなりのほうが面倒になりそうなので、似たようなの作ります。

YuO
記事: 947
登録日時: 14年前

Re: isblank

投稿記事 by YuO » 11年前

単純に,実装されていないだけでしょうね。
VC++ 2012やVC++ 2013では実装されています。

ちなみに,

CODE:

template  std::isblank(charT, std::locale &);
は,
  • C++11で追加された関数
  • 22.2 Header synopsisには記述がない (INCITS/ISO/IEC 14882:2011)
  • 22.3.3.1 Character classificationには記述がある (同上)
という不思議な関数です。まぁ,VC++ 2010では仕方が無いのでとをインクルードして,std::setlocaleした後にstd::isblankを使うことで代用するのがよいかと。
# 真面目に実装するとlocale系は面倒臭い部類に入るかと。